UIWindow

作者: 英雄出少年 | 来源:发表于2019-04-16 22:50 被阅读0次

一.什么时候创建
1.加载info.plist,判断有没有指定main.storyboard,指定了main.storyboard,就会去加载main.storyboard,执行main.storyboard的时候创建.

二.main.storyboard步骤
2.1创建窗口
2.2加载控制器
2.3设置窗口的根控制器,显示窗口

三.手动创建窗口
1.什么时候创建?
1.在加载info.plist文件之后,程序启动才完成,启动完成之后,就要显示窗口,因此在程序启动完成的时候创建窗口.

image.png

四.窗口补充
1.应用程序中那些控件属于窗口,1.状态栏 2.键盘
2.窗口层级关系 UIWindowLevelAlert > UIWindowLevelStatusBar > UIWindowLevelNormal
设置窗口的层级,层级谁大就显示在最外面
3.UITextField显示键盘
注意点:如果一个键盘想要弹出来,必须把textField添加到一个控件上.

设置窗口的根控制器,底层会自动把根控制器的view添加到窗口上,并且让控制器的view有旋转功能
[self.window addSubview:vc.view];

makeKeyAndVisible:让窗口成为应用程序的主窗口,并且显示窗口
[self.window makeKeyAndVisible]

模仿程序一启动就加载Main.storyboard文件,创建窗口,创建箭头指向的窗口跟控制器,并且显示窗口


image.png

**xib和storyboard的区别 **
storyboard已经指定了控制器的view,不需要我们管,xib需要我们 手动管理。

代码加载storyboard

image.png

通过xib创建控制器

如何通过xib创建控制器?
1.让xib与控制器产生联系,设置xib的文件拥有者是控制器,这时候xib就描述这个控制器
2.连线,告诉控制器是哪个view在描述

image.png image.png

控制器的view创建

image.png

loadView系统默认做法


image.png
  • (void)loadView的应用场景
    1、一个控制器一开始的时候就展示一张图片(一种方法:在view上添加个UIImageView来显示一张图片,第二种方法:让UIImageView作为控制器的View 优点:节省一个view的内存)
    2、网页控件UIWebView,已进入就展示一个网页

自定义view

image.png

loadview get的方法的原理

image.png

通过xib加载控制器的view创建

系统默认的做法


image.png

通过xib创建XMGViewController控制器的view底层实现原理
根据xib创建窗口的根控制器,init底层会调用initWithNibName:bundle:
XMGViewController *vc = [[XMGViewController alloc] initWithNibName:nil bundle:nil];
1.判断下nibName有没有值,如果有值,就会去加载nibName指定的xib
2.如果nibName为空,会先去查找有没有XMGView.xib,如果有就去加载
3.如果没有XMGView.xib,就会去加载根类名同名的xib:XMGViewController.xib
4.如果还没有找到,就生成一个空的view,如下图:

image.png

控制器的view延迟加载

image.png image.png

控制器view的背景色

image.png

相关文章

  • UIWindow

    目录:1、UIWindow简介2、UIWindow的创建3、获取UIWindow 1、UIWindow简介 UIW...

  • UIWindow 原理与巧妙使用 makeKeyAndVisib

    - UIWindow 简介- UIWindow 概述- 我们可以使用 UIWindow 来作什么?- makeKe...

  • UIWindow、UIView、CALayer

    UIWindow的windowLevel属性 UIWindow简单介绍 UIWindow详解及踩坑 UIWindo...

  • UIWindow讲解

    1.UIWindow & UIWindowLevel 一、简单介绍UIWindow是什么? UIWindow是一种...

  • iOS开发之UIWindow的使用

    一、UIWindow简介 UIWindow是最顶级的界面容器。UIWindow继承自UIView。 UIWindo...

  • iOS 开发- UI篇-UIWindow介绍

    UIWindow 简单介绍原文链接? iOS开发UI篇—UIWindow简单介绍 一、简单介绍 UIWindow是...

  • iOS --- UI 简单总结

    代码创建UIWindow对象 Xcode7之后使用代码创建UIWindow对象: //创建UIWindow对象 s...

  • iOS关于UIWindow

    UIWindow简介: 在iOS App中,UIWindow是最顶层的界面内容,我们使用UIWindow和UIVi...

  • UIWindow 知识梳理

    UIWindow简介 在iOS开发中,UIWindow和UIView一样都是用来呈现界面的。UIWindow并不包...

  • UIWindow的基本使用

    二、使用UIWindow 1、简介在iOS App中,UIWindow是最顶层的界面内容,我们使用UIWindow...

网友评论

      本文标题:UIWindow

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