【问题标题】:Add View Above All ViewControllers在所有视图控制器之上添加视图
【发布时间】:2018-02-19 21:04:31
【问题描述】:

我正在制作一个用户可以播放音乐的应用。我想在屏幕底部添加一个视图,显示正在播放的歌曲。就像苹果的音乐应用一样。

我希望视图显示在我的所有应用程序的 ViewControllers 上,详细信息视图控制器除外。我知道如何向窗口添加视图,只需...

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.

    let view = UIView()

    window?.makeKeyAndVisible()
    window?.insertSubview(view, at: 0)
    window?.bringSubview(toFront: view)

    return true
}

但是,我真的希望能够设计视图,不是以编程方式,而是在情节提要中。因此,我需要一个UIViewController 来充当这个视图。如何将此UIViewController(假设高度为 70)添加到我所有视图的底部?任何帮助表示赞赏!谢谢!

【问题讨论】:

  • 编程与否,您需要了解视图控制器和视图之间的区别(或者更专业地说,在UIViewControllersUIViews 之间)。您不要将视图控制器添加到视图 - 这是不可能的 - 但您可以将视图添加到视图控制器的视图(以及将视图控制器添加到视图控制器)。这就是所谓的层次结构...父子关系。最后,none 与代码 故事板有任何关系,因为它们可能以任何一种方式发生。那么你到底想做什么?让视图浮动在其余视图之上?

标签: ios swift uiview uiviewcontroller


【解决方案1】:

无需创建UIViewController,您可以使用Xib文件创建自定义UIView并将其加载为UIView,然后将其添加到窗口中

let customView = (Bundle.main.loadNibNamed("hoverView", owner: self, options: nil))?[0] as! hoverView;

customView.frame = CGRect(x: 0, y: 0, width: w , height: h )

// then add it anywhere    

【讨论】:

  • 哦!这是个好主意。我忘记了 Xib 文件!我是编码新手。感谢您的帮助。
  • @Sh_Khan 如果这个视图与其后面的视图重叠会发生什么?
  • 使用 insertSubview 将其插入到您想要的任何视图上方
  • insertSubview 用于特定视图,但根据所有应用程序所需的要求,而不是特定视图。
  • 其实他需要那个重叠的浮动视图
猜你喜欢
  • 2019-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多