作者:Mitchell
一、 简介
- 每个应用程序至少需要一个窗口,一个UIWindow类的实例,起哄的一些包含不止一个窗口,一个窗口对象有许多的职责:
- 包含了应用可见的内容
- 它在对你的视图和其他应用对象分发点击事件上扮演了重要角色
- 它协助你应用程序的试图控制器去确定方向的改变
- iOS中,窗口没有文字标题,关闭的盒子和其他可见的装饰品。一个窗口仅仅是一个包含了一个或者多个视图的黑色包含物。另外,应用程序不通过展示新的窗口来改变它们所展示的内容。当你想要去改变展示的内容的时候,你应该改变你最上面的视图而不是去改变窗口。
- 大多数iOS应用仅仅在它们的生命周期内创建或使用一个窗口。这个窗口横跨了整个设备的主屏幕,并且在应用生命周期的早期被main的nib文件读取或者代码创建。然而,如果一个程序支持一个额外的视频展示,它能够创建一个额外的窗口去展示额外的内容。所有其他的窗口都是被系统创建的,而且都是为了应对特殊的事件,比如接入了一个电话。
二、 程序中一般那些是窗口的控件
- 状态栏
- 注意:如果打印application.windows是无法状态栏的窗口的,因为状态栏的窗口是不归我们的应用所有。
- 键盘
三、窗口的优先级
- 我们可以通过设置窗口的windowLevel来设置窗口的优先级,也就是谁上谁下的关系,优先级如下:
UIWindowLevelAlert > UIWindowLevelStatusBar > UIWindowLevelNormal