UIWindow

UIWidow基础知识

  • UIWindow是一种特殊的UIView,通常在一个app中,一般都会有UIWindow
  • iOS程序启动完毕后,创建的第一个视图控件就是UIWidow,接着创建控制器view,最后将控制器的view添加到UIWidow上,于是控制器的view就显示在屏幕上
  • 一个iOS程序值所以能显示子啊屏幕上,完全是因为它有UIWidnow
  • 也就是说,没有UIWidow,就看不见任何UI界面

加载main.storyboard做的事情

  • 1、创建窗口
  • 2、加载main.storyboard,并且加载main.storyboard指定的控制器
  • 3、把创建的控制器作为窗口的根控制器,让窗口显示出来
  • 纯代码代表这个过程
// 1.创建窗口,注意窗口必须要有尺寸,尺寸跟屏幕一样大的尺寸,窗口不要被释放
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
self.window.backgroundColor = [UIColor redColor];

// 2.创建窗口的跟控制器
UIViewController *vc = [[UIViewController alloc] init];
vc.view.backgroundColor = [UIColor yellowColor];


// 如果设置窗口的跟控制器,默认就会把控制器的view添加到窗口上
// 设置窗口的跟控制器,默认就有旋转功能
self.window.rootViewController = vc;

// 相当于addSubviwe,但是这个方法添加,不能添加的控制器不能跟随window的旋转而旋转
// [self.window addSubview:vc.view];

// 3.显示窗口
[self.window makeKeyAndVisible];

UIWindow补充

359e6638-d7b7-4153-a8d6-4b91dd199128.png
// 相当于hidden = NO
// 还有一个作用,就是让本window作为主窗口
[self.window makeKeyAndVisible];

// application.windows app窗口数
// application.keyWindow app主窗口

窗口

主显示窗口、状态栏、键盘都是窗口

窗口可以分层次

@property(nonatomic) UIWindowLevelwindowLevel;

UIWindowLevelNormal - 层级最低
UIWindowLevelAlert
UIWindowLevelStatusBar - 层级最高
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • UIView专题 1UIWindow 1.1UIWindow简介 UIWindow是一种特殊的UIView,通常在...
    Kevin_Junbaozi阅读 5,462评论 0 4
  • UIWindow 1.什么是UIWindow?官方文档解释窗口和屏幕,尺寸 2.之前都没有创建UIWindow,怎...
    SoManyDumb阅读 2,629评论 0 0
  • 1.UIWindow简介 UIWindow是一种特殊的UIView,通常在一个app中至少会有一个UIWindow...
    xx_cc阅读 16,375评论 5 40
  • 前言 最近在做一个通知弹框的需求,应用到了UIWindow,之前没有研究过,趁着这次机会了解下UIWindow。简...
    WQ_UESTC阅读 5,916评论 0 3
  • UIWindow 基本概念一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWindow,是一种特殊的UIVi...
    马文涛阅读 12,153评论 2 7

友情链接更多精彩内容