一个应用一般有几个uiwindow对象
UIViewController是iOS顶层视图的载体及控制器,用户与程序界面的交互都是由UIViewController来控制的,UIViewController管理UIView的生命周期及资源的加载与释放。
UIView与UIWindow共同展示了应用程序的用户界面。可以将UIView理解成画布,UIWindow理解成画框。这两个类的继承关系是这样的:
NSObject — UIResponder — UIView — UIWindow
iOS中,所有显示在界面上的对象都是从UIResponder直接或间接继承的,UIView和UIWindow也不例外。
可以将它们之间的关系想象成这样一个场景:首先会有一个空的画框(UIWindow),我们在画框上放置一块画布(UIView),然后可以在这个画布(UIView)上进行绘画,画布上可能会被画上各种元素,例如UILabel、UIButton等。这些元素其实也是一个又一个UIView,它们会有一个层级关系管理,有点相当于Photoshop图层的概念,层级高的元素会覆盖住层级低的元素,从而导致层级低的元素被部分或完全遮挡。
UIWindow
虽然UIWindow继承自UIView,但是在模型中,它是一个首席View。UIWindow的主要作用是提供一个区域来显示UIView,然后将事件分发给UIView。一般情况下,应用程序只有一个UIWindow对象,即使有多个UIWindow对象,也只有一个UIWindow可以接受到用户的触屏事件。
当新建一个最原始的Empty Application工程后,会发现系统在application:didFinishLaunchingWithOptions:方法里已经为我们建好了一个UIWindow
版权声明:本文由哟品培原创或收集发布,如需转载请注明出处。