為了避免屏幕尺寸碎片化帶給開發(fā)者額外的巨大工作量诱贿,使得開發(fā)者可以僅僅在一個 storyboard 做出能夠適配所有尺寸屏幕的App,Apple引入了auto Layout 搓蚪。這使得很多原本需要開發(fā)者自行處理的UI設計工作被system負責起來郭蕉,大大降低了開發(fā)者的工作量疼邀。
在iOS 8中,Apple提出了size classes ,這是一種允許我們在任何大小及方向的屏幕上依賴 auto Layout 來描述UI設計的方法召锈。Apple更改了部分 UIKit classes 旁振,使它們依賴于 size classes 。
size classes 包括 compact 和 regular 兩種涨岁。因為用戶在使用不同尺寸的設備時會有不同的拿持姿勢和使用習慣拐袜,比如大多數(shù)人會單手使用iPhone SE,但很少有人會選擇單手使用一個iPad梢薪〉牌蹋基于這一點,開發(fā)者很多時候需要根據(jù)不同尺寸的屏幕給同一個view設置不同的大小和位置秉撇。Apple為了解決這一問題(我覺得...)甜攀,提出了以上兩種標準以方便開發(fā)者。
在舊版本的Xcode中默認的 size classes 是 Any 琐馆,但在最新的Xcode 8中规阀,Apple沒有再使用 Any ,而是要求storyboard對應具體的設備瘦麸,如下圖谁撼。
在UI設計過程中,選擇不同的 Device 及 Orientation滋饲,storyboard就會以對應的形式展現(xiàn)彤敛。
圖中" iPhone 7(wC hC) "就表示當前storyboard中模擬的就是水平的iPhone7屏幕。
其中" wC hC "指的是 width:Compact了赌; height:Regular ,這意味著你可以在該情況下為所有橫屏的iphone(除7plus外)設計一個可以完美適配的UI玄糟。
注意觀察你會發(fā)現(xiàn)右下方有一個 Vary for Traits 按鈕勿她。點擊它會彈出如下對話框:
這里的 Width 和 Height 其實是對應左邊所選定的設備信息。
-
當你只選擇Width時阵翎,如圖「注意右上角View as對應的是(wC hR)」:
這表示你希望對所有滿足Width:Compact且Height:Any的情況設計統(tǒng)一適配的UI界面逢并,而Xcode也用heightlight提醒你之剧,當前正在對如圖中所列出的14種情況設計獨有的通用UI。
-
同理砍聊,只選擇Height則代表你希望對所有滿足 Width:Any且Height:Regular 的情況單獨設計UI背稼,如圖:
-
當同時選擇兩者時,如圖:
這樣玻蝌,我們就可以根據(jù)自己的需要隨心所欲的設計自己的App了蟹肘。