UIWindow的目的是什么?

hgw*_*tle 7 cocoa-touch uikit uiwindow ios

我总是看到对应用程序"窗口"的引用,我发现AppDelegates通常有一个UIWindow名为"window" 的属性.所以我只是想知道如何感知这个UIWindow对象.我看到它是它的子类UIView,所以我从技术上讲它是一个View是对的吗?那么说它就像整个应用程序的Superview一样安全吗?此外,何时以及为什么我可以参考它?它增加了什么价值?

我知道那里有很多问题,但只是一些整体背景UIWindow会很好.

Kev*_*vin 9

您可能需要查看适用于iOS的View Programming Guide中的" 关于Windows和视图"部分.

在iOS中,您使用窗口和视图在屏幕上显示应用程序的内容.Windows本身没有任何可见内容,但为应用程序的视图提供了一个基本容器.视图定义要用某些内容填充的窗口的一部分.例如,您可能具有显示图像,文本,形状或其某种组合的视图.您还可以使用视图来组织和管理其他视图.

另请注意,iOS应用程序通常只有一个窗口.如果应用在外部屏幕上显示内容,则会有例外.

  • 有点晚了,但你的最后一句话实际上是非常不真实的.应用程序通常有许多窗口,即键盘,警报视图,操作表,"UIReferenceLibraryViewController"(选择"定义"时的字典视图控制器),全屏视频播放器等. (4认同)
  • @LeoNatan 不太正确。引用 Apple 文档:“应用程序不会通过显示新窗口来更改其内容。要更改显示的内容,您可以更改窗口最前面的视图。大多数 iOS 应用程序在其生命周期中仅创建和使用一个窗口。该窗口跨越设备的整个主屏幕,并在应用程序生命周期的早期从应用程序的主 nib 文件加载(或以编程方式创建)。但是,如果应用程序支持使用外部显示器,则它可以创建一个附加窗口来显示外部显示器上的内容。” (2认同)