sizeclass
將蘋果設備的寬和高分為緊湊和正常兩大類進行適配
sizeclass-1
- iPhone4S,iPhone5/5s,iPhone6
豎屏:(w:Compact h:Regular)
橫屏:(w:Compact h:Compact) - iPhone6 Plus
豎屏:(w:Compact h:Regular)
橫屏:(w:Regular h:Compact) - iPad
豎屏:(w:Regular h:Regular)
橫屏:(w:Regular h:Regular) - Apple Watch(猜測)
豎屏:(w:Compact h:Compact)
橫屏:(w:Compact h:Compact)
讓一個按鈕在iPhone豎屏時在左上角,iphone橫屏時在正中間,步驟如下:
1.先選定對應的sizeclass
QQ20170324-1.png
2.拖一個button到控制器里,設置相應約束。
QQ20170324-2.png
3.切換到iPhone橫屏時的sizeclass
QQ20170324-3.png
發現視圖里并沒有button,左邊欄里的按鈕呈灰色
4.選擇第三部的?號
QQ20170324-4.png
由于已經切換到了橫屏的sizeclass,所以默認會給你提供對應的sizeclass,否則要在下面三項里自己選
QQ20170324-5.png
勾選Installed
QQ20170324-6.png
發現有約束錯誤,因為還沒有為橫屏狀態的button設置約束
QQ20170324-7.png
設置好居中的約束后錯誤消失,已經實現了在豎屏時在左上角,橫屏時居中的效果
以上操作在Xcode 7.2中完成
vary for traits
Xcode8 以后原先sizeclass的地方換成了 vary for traits
點擊vary for traits 可以選擇針對不同的設備進行布局
選中iphone豎屏時
QQ20170324-11.png
QQ20170324-12.png
QQ20170324-13.png
選中iPhone橫屏時
QQ20170324-8.png
Q20170324-9.png
QQ20170324-10.png
記得約束設置完成之后再點擊Done varying
實現上面的功能步驟大致相同
QQ20170324-0.png
相關設置上比sizeclass可以更方便的設置背景顏色等屬性
以上在Xcode8.2.1上完成