原文地址:http://www.skyfox.org/ios-use-trait-variations.html
特征變量(Trait Variations)
Trait Variations贪染,特征變量较性。
在Xcode8中刪除了size class選項苦酱,取而代之的是Use Trait Variations選項铺遂。用來聲明APP在不同設備上的不同特征热鞍。這帶給我的將是一種新的適配方式。
特征(Trait)
特征(Trait),特征是描述當前設備配置的一部分。特征包括APP可用的屏幕區(qū)域漾抬,顯示的分辨率、色域常遂,亮色或暗色的外觀纳令。您可以創(chuàng)建你的用戶界面元素的不同組合的特征變量。
特征 Trait
描述 Description
Horizontal size class你的iOS APP可用的總寬度
Vertical size class你的APP可用的總高度
Color gamutiOS設備的使用等色彩空間
Display scale屏幕的像素密度
Apple Watch sizeApple Watch的尺寸
Interface style亮色或暗色風格的tvOS用戶界面
使用不同的設備配置視圖的用戶界面
在Interface Builder(界面構建器),使用設備配置面板觀看使用不同的設備配置后的布局克胳。例如,一個iOS APP的布局可以在iPhone和iPad和使用橫向或縱向方向存在不同平绩。tvOS APP的用戶界面在使用亮色或暗色界面風格(interface style)下存在不同。你第一次打開用戶界面文件,選擇你期望大多數用戶使用你的應用程序的設備,然后創(chuàng)建用戶界面在其他設備上需要的變量(Variations)漠另。
1.打開設備配置面板,單擊在畫布下邊布局條上的“View as”按鈕捏雌。
打開設備配置面板,單擊在畫布下邊布局條上的“View as”按鈕。
2.選擇設備
在設備區(qū)域酗钞,選擇一個設備腹忽。你選擇的設備系列會出現在布局條中的"View as" 按鈕上来累。對于iOS APP, 選擇一個iOS設備系列, 對于watchOS APP, 選擇一個Apple Watch尺寸
在Adaptation適應區(qū)域,選擇一個適應窘奏,對于你的應用可用的屏幕空間數量的Variation變量嘹锁,例如,為iPad設備選擇Split View視圖。
在Interface Style界面風格區(qū)域着裹,選擇一個影響視覺的界面樣式领猾,例如,亮色或暗色的tvOS界面風格骇扇。
為不同的設備配置創(chuàng)建用戶界面的變量
在Interface Builder界面構建器摔竿,您可以為不同的設備配置使用設備配置面板添加、刪除和編輯用戶界面的變量少孝。在你創(chuàng)建一個變量之前继低,選擇一個你想要變化的設備配置。
1.在設備配置面板中,單擊“Vary for”按鈕稍走。設備配置面板中顯示了此配置的所有受影響的設備袁翁。
2.對于iOS APP,在彈出窗口中,選擇 Size Class(寬度、高度,或兩者)
Size Class特征定義一個抽象的或真正的iOS設備上的屏幕尺寸婿脸。在選擇特征后,點擊界面構建器任何位置關閉彈出窗口粱胜。
設備配置的窗格顯示受影響的設備。
3.修改在Interface Builder中的設備配置
在變量模式狐树,任何更改會生效在畫布上焙压,創(chuàng)建一個當前設備的配置變量或更新現有的變量。
4.點擊“Done Varying”按鈕
Interface Builder界面構建器在畫布上停止添加變量給不同視圖的屬性和約束抑钟。
使用檢查器編輯基于特征的屬性變量值
您可以為不同的設備特征使用Attributes inspector屬性檢查器和Size inspector尺寸檢查器自定義對象的屬性值涯曲。因此,創(chuàng)建用戶界面的變量類似于使用設備配置面板在塔。
1.增加基于特征的屬性值
在Interface Builder界面構建器中掀抹,選擇一個在畫布上的對象。
選擇檢查器包含的所需屬性心俗。
點擊接近屬性控制的(Add Customization)增加自定義按鈕(+)
在彈出窗口中,選擇一個設備配置傲武。對于watchOS APP,選擇一個Apple Watch設備城榛,對于tvOS APP,選擇一個界面風格揪利。對于iOS APP,從彈出框選擇一個設備配置表示為Size Class和gamut顏色范圍狠持。選擇一個設備配置后,設備配置指定的控制出現在屬性控制中疟位。
改變設備配置指定的屬性值。
2.移除基于特征的屬性值
在界面構建器中,選擇一個在畫布上的對象喘垂。
選擇檢查器包含的所需屬性甜刻。
單擊接近設備配置指定的控制旁邊的(Remove Customization)刪除自定義按鈕(x)自定義從屬性中移除
用戶界面的變量
用戶界面變量是基于設備配置的一個你的用戶界面變化的表示绍撞,如改變了背景顏色和其他元素時,設備設置成暗色的風格。變化可以適用于用戶界面的一個元素,例如刪除約束得院,或者一個視圖類的屬性或約束傻铣,如一個Label的字體。
你可以改變的:
Size or position of a view? (視圖的位置或大小)
Installation of a view ? (視圖的裝載)
Installation of a constraint ? (約束的裝載)
Constraint constant ? (約束常量)
Font ? (字體)
Color for the font, tint, or background ? (字體顏色祥绞,色彩或背景)
Layout margins ? (布局的間距)
Image file ? (圖片文件)
可以改變的特定屬性取決于元素的類非洲。
Size Class
size class標識可用于應用程序的高度和寬度相對數量的顯示空間。每個維度可以是compact緊湊的蜕径,例如两踏,在iPhone橫向的高度《涤鳎或者是regular不變的,例如梦染,iPad的高度或寬度。因為大部分APP的布局不需要改變任何可用的屏幕大小,有一個額外的值
一個視圖控制器的當前size class是基于三個因素:
設備的屏幕大小朴皆。
設備的方向弓坞。
對于視圖控制器屏幕的一部分可用。例如车荔,當一個分屏視圖控制器顯示master和detail控制器,控制器都沒有進入全屏戚扳。
Interface Builder界面構建器允許您自定義布局忧便、約束和基于size class的對象的屬性。布局然后通過size class自動調整大小帽借。例如珠增,,當用戶從豎屏轉換到橫屏視圖,或在iPad上打開一個split view拆分視圖砍艾。