UIWindow

作者: 小码码 | 来源:发表于2016-10-08 00:15 被阅读36次

    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
    

    相关文章

      网友评论

        本文标题:UIWindow

        本文链接:https://www.haomeiwen.com/subject/mqcuyttx.html