UIWindow
- UIWindow 是一个特殊的
UIView
,一个APP 至少有一个窗口(UIWindow) - 每一个UIWindow必须有一个
rootViewController
,不然会报错 UIWindow
的这个属性windowLevel
来设置窗口的的优先级
根据APP的启动原理加载 窗口
1.执行Main函数
2.执行
UIApplicationMain
函数,指定UIApplication对象,并设置代理,遵循UIApplication的协议3.开启一个主运行云循环
4.加载info.plist文件中的 sb或者xib文件(如果有)
5.程序启动完成,执行UIApplicationDekeagte的代理方法
从上面4中我们知道,如果有Mian,就会加载Main.storyBoard
,并创建一个窗口(UIWindow),把Main.storyBoard
箭头指向的控制器,作为根视图控制器
###手动创建窗口加载
- 加载程序启动完毕的时的代理方法创建窗口
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
//设置根视图控制器
self.window.rootViewController = [[UIViewController alloc] init];
//窗口可见
[self.window makeKeyAndVisible];
return YES;
}
###窗口的层级UIWindowLevelAlert > UIWindowLevelStatusBar > UIWindowLevelNormal
- 根据层级的优先级,可以做出
蒙版
效果