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补充

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

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

窗口

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

窗口可以分层次

@property(nonatomic) UIWindowLevelwindowLevel;

UIWindowLevelNormal - 层级最低
UIWindowLevelAlert
UIWindowLevelStatusBar - 层级最高

你可能感兴趣的:(UIWindow)