app应用被启动加载后,通常情况下,就会有且仅有一个UIWindow实例。其目的是将需要在屏幕上显示的内容展示给我们。
一、屏幕相关的知识
1> iPhone屏幕分辨率:
iphone4之前的设备:320 * 480
iphone4和iphone4S: 640 * 960
iphone5:640 * 1136
2>UIScreen类
UIScreen类是当前屏幕的类,一般创建实例都是用它的类方法。[UIScreen mainScreen]。
个人建议在写viewController的UI布局时,可以直接根据屏幕类的宽和高进行布局。
注意:对于我们而言,当屏幕旋转90°,我们会认为屏幕的宽和屏幕的高互换。但是,UIScreen类并没有帮我们做到。
二、UIWindow的常用方法
1>创建一个全屏的window
self.window = [[[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds] autorelease];
2>设置/改变rootViewController属性
self.window.rootViewController = rootViewController;//假设rootViewController已经存在
3>将window设置为keyWindow并显示
[self.window makeKeyAndVisible];
一般情况下,上面的代码中,除了设置/改变rootViewController需要自己写之外,都会由xcode自动生成。
UIWindow是UIView的子类,所以UIView能够使用的方法UIWindow都能够调用。
但是通常情况下,我们不调用UIWindow的方法。这和UIWindow的作用有关。
UIWindow主要有两个作用:一是提供一个区域来显示UIView,二是将事件分发给其区域内的UIView。我们需要做的是,实现第一个作用。
一般都是通过改变rootViewController属性来实现。