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 - 層級最高