UIScreen, UIWindow

模仿书上或网上的例子,每次最开始就是

在 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 加:

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

self.window.rootViewController = [[WXController alloc] init];
//UIWindow有一个根视图控制器—这个视图控制器负责配置当窗体显示时最先显示的视图
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
//这行代码会让包含了视图控制器视图的Window窗口显示在屏幕上

这里想弄弄明白 UIScreen,UIWindow的区别

1.UIScreen(屏幕)
UIScreen类代表了屏幕,UIScreen一般也只是用来获取屏幕大小。如下例所示(3.5吋的iphone 4s):
CGrect screenBounds = [[UIScreen mainScreen] bounds];  //返回的是带有状态栏的Rect (0.0,0.0,320.0,480.0)
CGRect viewBounds = [[UIScreen mainScreen] applicationFrame];  //不包含状态栏的Rect(0.0,20.0,320.0,460.0)[iphone状态栏高度20像素]

2.UIWindow(窗口)
iPhone应用程序通常只有一个窗口,表示为一个UIWindow类的实例。应用程序在启动时(或者从nib文件进行装载)创建这个窗口,并往窗口中加入一或多个视图并显示出来。之后我们很少需要再次引用它。UIWindow对象是所有UIView的根,管理和协调的应用程序的显示。一般应用程序只有一个UIWindow对象,即使有多个UIWindow对象,也只有一个UIWindow可以接受到用户的触屏事件。
应用程序可以借助窗口对象来进行事件传递。窗口对象会持续跟踪当前的第一响应者对象,并在UIApplication 对象提出请求时将事件传递它。

参考:

UIScreen,UIView,UIWindow和UIViewController的介绍和区别

原文地址:https://www.cnblogs.com/mobilefeng/p/4614826.html