什么是UIWindow
- UIWindow是一种特殊的UIView,一个app中至少会有一个UIWindow
- 应用程序启动完毕后创建的第一个视图控件就是UIWindow,接着创建控制器的View然后将控制器的view添加到UIwindow上,然后控制器的view就显示在手机上了
- 没有UIWindow就会看不到任何UI界面
UIWindow的创建
// 1.创建窗口对象
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
// 2.创建窗口的根控制器
ViewController *vc = [[ViewController alloc] init];
vc.view.backgroundColor =[UIColor whiteColor];
// 3. 设置控制器为窗口的根控制器
self.window.rootViewController = vc;
/*
rootViewController:相当于 [self.window addSubview:vc] 只是用rootViewController会多一个旋转动画
*/
// 4.显示窗口
/ [self.window makeKeyAndVisible];
/**
makeKeyAndVisible:底层相当于实现了以下两点
1.可以显示窗口 self.window.hidden = NO;
2.成为主窗口 application.keyWindow = self.window;
self.window.hidden = NO;
NSLog(@"%@",self.window);
*/
其他的窗口
1.状态栏
2.键盘
UIWindowLevel(窗口的层级关系)
分三个级别
- UIWindowLevelNormal
- UIWindowLevelAlert
- UIWindowLevelStatusBar
通过打印UIWindowLevel的值我们可以看出它们的层级关系UIWindowLevelAlert > UIWindowLevelStatusBar > UIWindowLevelNormal
// 窗口的层级最高显示在最上面
self.window.windowLevel = UIWindowLevelAlert;