标签:
以下内容是官网的英文翻译,有任何差错请批评指正!
UIWindow定义为“窗体”对象,用来管理和协调显示在设备屏幕上的视图,一个app只有一个“窗体”,除非app讲内容投射到其他的设备上。
两个主要的功能:显示视图和给视图分发事件。你可以改变window的根视图来改变你APP的显示内容;而不是创建新的窗体。window有一个默认的UIWindowLevelNormal级别,这个级别代表着窗体在Z轴的位置,例如系统的ALert窗体就回出现在normal级别的窗体之前,如果同级别的窗体,只会显示第一次生命的窗体。
注意:
当你用storyboards 和xcode模板创建爱拍拍,如果你在IB上创建窗体,确保你在属性监视器中选择的是全屏(在启动项)以便窗体的尺寸可以适应当前的屏幕,窗体本身是不能接受窗体边际以外的触摸事件,视图默认也不能被裁减到窗体的尺寸。不适当的尺寸可能导致无法将事件分发到窗体的所有视图。
Configuring windows
@property(nonatomic) UIWindowLevel windowLevel
Level 是有序的,例如alertWindows将会在normalwondow出现。当窗体的有新的level值,这个窗体将在同level窗体中排在最前面。
@property(nonatomic, retain) UIScreen *screen
默认情况下,所有窗体都创建在主屏幕上,如果有额外的屏幕附加载设备上,分配一个不同的screen对象给这个属性,会导致窗体会显示新的screen.
把窗口从屏幕到屏幕是一个相对昂贵的操作,要求性能的时候,不推荐这么做;推荐的做法是在第一次显示窗体的时候,改变screen.改变一个还没有被排序的窗体屏幕,是没有额外的性能开销。
@property(nonatomic, retain) UIViewController *rootViewController
根视图提供窗体内容,将view controller赋值给这个属性(用IB或是coding)。如果窗体已经存在一个视图层次结构,在新的视图被安装之前,旧的视图将被移除。默认值nil。
keyWindow
Property
如果是YES,接收对象就是应用程序的主屏幕。否则NO。
Key window 是接收键盘和其他非触摸事件,一次只有一个窗口可能是关键的窗口。
- makeKeyAndVisible一个便捷的方法使接收者显示在主屏幕上(在优先级相同或是较低),你也可以隐藏和显示窗体,使用来事UIView的属性hide
标签:
原文地址:http://my.oschina.net/u/1536972/blog/497961