我一直看到对应用程序'窗口'的引用,我发现AppDelegates通常有一个名为'window'的UIWindow
属性。所以我只是想知道如何感知这个UIWindow
对象。我看到它是UIView
的子类,所以我觉得从技术上讲它是一个View吗?那么说它就像整个应用程序的Superview一样安全吗?此外,何时以及为什么我可以参考它?它增加了什么价值?
我知道那里有很多问题,但只有UIWindow
的整体背景会很好。
答案 0 :(得分:9)
您可能需要查看适用于iOS的View Programming Guide中的About Windows and Views部分。
在iOS中,您可以使用窗口和视图在屏幕上显示应用程序的内容。 Windows本身没有任何可见内容,但为应用程序的视图提供了一个基本容器。视图定义要用某些内容填充的窗口的一部分。例如,您可能具有显示图像,文本,形状或其某种组合的视图。您还可以使用视图来组织和管理其他视图。
另请注意,iOS应用程序通常只有一个窗口。如果应用在外部屏幕上显示内容,则会出现例外情况。
答案 1 :(得分:0)
<强>的UIWindow 强>
UIWindow对象协调屏幕上一个或多个视图的呈现。在iOS应用程序中通常只有一个窗口。而查看多个。 Windows和Views都用于在屏幕上显示应用程序的内容。 Windows为应用程序的视图提供了一个基本容器,但没有任何可见内容。视图是窗口的一部分,您可以在其中填充一些内容。例如,您可能拥有显示图像,文本的视图。
答案 2 :(得分:0)
Window就像任何iOS应用程序的最高UI容器一样。它位于您所有视图和viewControllers的上方。
问我为什么需要它,我说这使UI结构在视图层次结构和事件处理方面更加清晰。例如,如果没有最内层视图处理的任何用户事件,只要该层次结构中没有其他视图可以处理,则最终将视图层次结构提升到窗口对象。
另一个例子是窗口的rootViewController,该窗口处理应用程序的特定于视图的细节。
对于一个应用程序,通常会有一个窗口。但是我开发了一个使用共享框架进行用户身份验证的应用程序。在那里,我们有一个特定于该身份验证框架的单独窗口。您为何要选择单独的窗口,在这里我再次介绍两个重要的用例,
我希望您在阅读完这些示例后能够理解窗口的本质。