UIWidow基础知识
- UIWindow是一种特殊的UIView,通常在一个app中,一般都会有UIWindow
- iOS程序启动完毕后,创建的第一个视图控件就是UIWidow,接着创建控制器view,最后将控制器的view添加到UIWidow上,于是控制器的view就显示在屏幕上
- 一个iOS程序值所以能显示子啊屏幕上,完全是因为它有UIWidnow
- 也就是说,没有UIWidow,就看不见任何UI界面
加载main.storyboard做的事情
- 1、创建窗口
- 2、加载main.storyboard,并且加载main.storyboard指定的控制器
- 3、把创建的控制器作为窗口的根控制器,让窗口显示出来
- 纯代码代表这个过程
// 1.创建窗口,注意窗口必须要有尺寸,尺寸跟屏幕一样大的尺寸,窗口不要被释放
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
self.window.backgroundColor = [UIColor redColor];
// 2.创建窗口的跟控制器
UIViewController *vc = [[UIViewController alloc] init];
vc.view.backgroundColor = [UIColor yellowColor];
// 如果设置窗口的跟控制器,默认就会把控制器的view添加到窗口上
// 设置窗口的跟控制器,默认就有旋转功能
self.window.rootViewController = vc;
// 相当于addSubviwe,但是这个方法添加,不能添加的控制器不能跟随window的旋转而旋转
// [self.window addSubview:vc.view];
// 3.显示窗口
[self.window makeKeyAndVisible];
UIWindow补充
// 相当于hidden = NO
// 还有一个作用,就是让本window作为主窗口
[self.window makeKeyAndVisible];
// application.windows app窗口数
// application.keyWindow app主窗口
窗口
主显示窗口、状态栏、键盘都是窗口
窗口可以分层次
@property(nonatomic) UIWindowLevelwindowLevel;
UIWindowLevelNormal - 层级最低
UIWindowLevelAlert
UIWindowLevelStatusBar - 层级最高