如下內容是官網的英文翻譯,有任何差錯請批評指正!
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