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