zoukankan      html  css  js  c++  java
  • UIWindow

    Window的作用

    在iOS中,一个window(也就是一个UIWindow对象)主要有这样几个作用:
    1.展示app的可视内容;
    2.将事件分发给视图以及其他对象;
    3.和app的view controller一起处理屏幕旋转。
    其实在大多数情况下,第三方程序员不用做任何事情,window就能完成这些工作。所以很多时候,只有当这个app需要支持另一个外设的屏幕的时候,程序员才会对window进行操作。

    知识点

    1.存放所有view的地方

    2.UIWindow、ViewController层次逻辑图

    3.四大对象关系图

    4.主窗口和次窗口:只有主窗口可以接收键盘以及非触摸类的消息事件

    5.直接将视图加到window上也可以开发,但会带来一些问题。
    1)视图的监听事件可能由于控制器被销毁而出现问题。
    2)旋转事件的传递UIApplication->UIWindows->viewController->view,如果直接添加视图,没有VC,那么视图无法旋转。

    6.windows创建过程
    1)有storyboard,

    • 先执行Main函数,执行UIApplicationMain(),根据其第三个和第四个参数创建Application,
    • 创建代理,并且把代理设置给application,
    • 根据项目配置文件info.plist里面的storyboard的name,找到对应的storyboard
    • 接下来创建一个window
    • 之后创建它的初始化控制器(就是箭头所指向的控制器),自动把该控制器设置为UIWindow的根控制器,接下来再将window显示出来,即看到了运行后显示的界面。

    2)无storyboard,

    • 先执行Main函数,执行UIApplicationMain(),根据其第三个和第四个参数创建Application,
    • 创建代理,并且把代理设置给application,
    • 开启一个事件循环,当程序加载完毕,他会调用代理的didFinishLaunchingWithOptions:方法。
    • 在该方法中,会创建一个Window,然后创建一个控制器,并把该控制器设置为UIWindow的根控制器,接下来再将window显示出来,即看到了运行后显示的界面。

    6.创建代码

        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        self.window.rootViewController = [[UIViewController alloc] init];
        self.window.backgroundColor = [UIColor whiteColor];
        [self.window makeKeyAndVisible];
    

    声明

    此博文整理自网络,部分内容可能直接摘抄原文内容,本人作为学习笔记使用。如若对读者有用,可自由收藏,但请不要用于任何的商业用途。

    如果您的作品被摘抄并且不愿意在此博客被公开请联系本人删除,联系邮箱limaofuyuanzhang@qq.com。

    参考

    iOS开发UI篇—UIWindow简单介绍
    以前从来没注意过的UIWindow

  • 相关阅读:
    ex3多类问题和NN中的前向传播
    逻辑关系下的NN应用
    NN-Neural Network
    ex2:逻辑回归及正则条件下的练习
    Overfitting&Underfitting Problems
    操作系统内存管理之虚拟内存
    C陷阱与缺陷读书笔记(三)
    操作系统常见面试题
    计算机网络常考面试题总结
    堆及堆排序
  • 原文地址:https://www.cnblogs.com/limaofuyuanzhang/p/5697445.html
Copyright © 2011-2022 走看看