美文网首页
iOS程序是怎么显示页面的?

iOS程序是怎么显示页面的?

作者: 哔哩哔哩智能喵 | 来源:发表于2016-10-09 18:26 被阅读30次
    • 先运行main函数,进入程序
      1.创建UIApplication
      2.创建UIApplicationDelegate并成为UIApplication的代理
      3.进入主循环,保持程序运行,处理事件
      4.加载info.plist,判断有没有main.storyboard,如果有就加载。
    • 进入程序后是怎么显示页面的
      1.在 didFinishLaunchingWithOptions://程序启动完方法中
      2.创建窗口
      3.如果有就加载main.storyboard,如果没有就创建一个UIViewController
      4.设置窗口的跟控制器为UIViewController
      5.显示窗口
        //1.创建UIWindow
        self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
        self.window.backgroundColor = [UIColor greenColor];
        // 2.创建窗口的跟控制器
        UIViewController *vc = [[UIViewController alloc]init];
        vc.view.backgroundColor = [UIColor yellowColor];
        //3.设置根控制器
        self.window.rootViewController = vc;
        //4.显示窗口
        [self.window makeKeyAndVisible];
    

    UIWindow补充

    • makeKeyAndVisible会让窗口成为主窗口,并且显示出来,可以通过打印application.Windows 来查看
    • 创建的窗口交给windows这个数组管理:
      • 在创建一个窗口显示出来,一个应用程序只有一个主窗口,并且显示出来的窗口,application管理,application有个Windows数组,存放显示出来的窗口,有一个例外态栏也是一个窗口,但是没有交给application管理。打印application.windows
    • 键盘也是窗口,可通过以下代码证实
    UITextField *textField = [[UITextField alloc] init];
        _textField = textField;
        [textField becomeFirstResponder];
        [self.window addSubview:textField];
         NSLog(@"%@",application.windows);
    
    • 窗口也有优先级
    • 窗口的优先级�属性self.window.windowLevel 查看
    • 窗口的优先级排序 UIWindowLevelNormal < UIWindowLevelStatusBar < UIWindowLevelAlert

    相关文章

      网友评论

          本文标题:iOS程序是怎么显示页面的?

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