UIWindow和UIView之间的区别

Sta*_*ley 9 iphone xcode cocoa-touch

创建一个空白的xib文件后,似乎我们可以拖动UIWindow或UIView来覆盖整个屏幕.我的问题是两者之间的实际差异是什么,在什么情况下我们应该使用另一个?

ber*_*ium 21

Windows本身没有任何可见内容,但为应用程序的视图提供了一个基本容器.视图定义要用某些内容填充的窗口的一部分.通常,iOS应用程序中只有一个窗口.

关于Windows和视图

  • 另一种思考方式是窗口永远不能有超视图.它位于视图层次结构的顶部. (4认同)
  • 窗口*覆盖整个屏幕(通常),窗口是视图层次结构中的根视图(它是UIView子类).Doc:"在Interface Builder中创建窗口时,建议您在属性检查器中启用"启动时全屏"选项.如果未启用此选项且窗口的大小不适合目标设备,则触摸事件可能不是这是因为窗口没有接收到其边界之外的触摸事件,并且默认情况下视图不会被剪切到窗口的边界. (4认同)
  • @beryllium正如你所说,"Windows没有任何可见的内容".那是什么意思呢?`self.window.backgroundColor = [UIColor lightGrayColor];`它怎么能自己展示一些东西? (2认同)

ben*_*ado 8

这不是一种或两种东西.您的应用必须具有UIWindow实例,该实例是您呈现的UIView实例的容器.

应用程序可以从nib文件加载UIWindow实例,也可以以编程方式创建它.查看一些示例代码以了解它是如何完成的.

  • 例如,当你想要处理外部屏幕时,有两个例子. (2认同)