UIWindow是⼀种特殊的UIView,通常在⼀个app中⾄至少有⼀个UIWindow;
iOS程序启动完毕后, 一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWindow
(1)info.plist中指定 main 时,会去加载StoryBoard.
1.创建⼀个窗口
2.加载MainStoryBoard,初始化⼀个控制器.
3.把初始化出来的控制器设置为窗口的根控制器.让窗⼝显示到屏幕上.
(2)info.plist中没有指定 main 时,需要手动的去创建窗口.
1.创建窗口
要有窗口显示,必须要有强引用.窗⼝也是控件,要想展示出来.必须得要有尺寸.
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
2.创建控制器
会把控制器的View添加到窗⼝上.并且有一个旋转的功能.
UIViewController *vc = [[UIViewController alloc] init];
vc.view.backgroundColor = [UIColor redColor];
3.设置控制器为窗口的根控制器
self.window.rootViewController = vc;
4.显⽰窗口
[self.window makeKeyAndVisible];
[self.window makeKeyAndVisible]的底层实现:
(1).让窗口成为显示状态.
窗⼝默认是隐藏的.hidden = yes.
底层做的事件就是:
self.window.hidden = NO;
(2)把控制器的View添加到窗⼝上面.
[self.window addSubView:rootVC.view];
(3).把当前窗⼝设置成应⽤程序的主窗口
application.keyWindow获得应用程序的主窗口.
(3)在程序当中,状态栏和键盘,它都属性是⼀个窗口.可以通过打印的⽅式来验证.设置window的层级.UIWindowLevelNormal它是一个CGFloat类型.
self.window.windowLevel = UIWindowLevelNormalUIWindowLevelNormal < UIWindowLevelStatusBar < UIWindowLevelAlert
网友评论