人們通常希望在他們所有的設(shè)備和多種情境中使用自己喜歡的應(yīng)用程序比如在不同的設(shè)備方向上和iPad的分屏情況下。尺寸類別 Size classes和自動(dòng)布局Auto Layout可以通過定義屏幕的布局、視圖控制器和視圖在環(huán)境變化時(shí)候應(yīng)該怎么適應(yīng)來幫助你實(shí)現(xiàn)這個(gè)愿望。顯示環(huán)境[display environment]的概念指的是設(shè)備的整個(gè)屏幕或者其中一部分比如彈出框的區(qū)域或者iPad分屏視圖中其中一側(cè)的區(qū)域。
iOS在特征集合trait collection的定義中包含了顯示環(huán)境的概念特征集合囊括了尺寸類別size class顯示比例display scale和用戶界面語言u(píng)ser interface idiom。你可以使用一個(gè)特征集合讓你的視圖和視圖控制器響應(yīng)顯示環(huán)境的變化。
iOS定義了兩個(gè)尺寸類別size class常規(guī)的regular和壓縮的compact。常規(guī)尺寸與拓展的空間緊密相關(guān)壓縮尺寸與約束的空間相關(guān)。想要定義一種顯示環(huán)境你需要定義一種橫屏尺寸類別與一種豎屏尺寸類別。如你所想一個(gè)iOS設(shè)備在豎屏模式可以使用一套類別而橫屏模式下可以使用另一套類別。
iOS能隨著尺寸類別和顯示環(huán)境變化而自動(dòng)生成不同布局。舉個(gè)例子當(dāng)垂直尺寸從壓縮變?yōu)槌R?guī)時(shí)導(dǎo)航欄和工具欄會(huì)自動(dòng)變高。
當(dāng)你靠尺寸類別來驅(qū)動(dòng)布局變化時(shí)你的應(yīng)用在任何顯示環(huán)境時(shí)都能顯示得很好。關(guān)于如何在Interface Builder中更好的使用尺寸類別你可以查閱Size Classes Design Help.
注在一種尺寸類別中持續(xù)使用Auto Layout進(jìn)行小的布局調(diào)整比如拉伸或壓縮內(nèi)容。更多Auto Layout參看 Auto Layout Guide.
下面的實(shí)例可以幫助你形象展現(xiàn)尺寸類型如何適配不同設(shè)備的顯示環(huán)境。例如iPad包括iPad Pro在長(zhǎng)寬和橫屏豎屏?xí)r都使用常規(guī)尺寸類型。換句話說iPad顯示環(huán)境一直處于垂直和水平的常規(guī)狀態(tài)。
注合格的iPad型號(hào)支持多任務(wù)你的應(yīng)用可能需要與其他應(yīng)用共享同一個(gè)屏幕。確保使用Auto Layout這樣你可以在用戶使用多任務(wù)功能時(shí)響應(yīng)他比如 分屏模式Split View和多任務(wù)分屏模式Slide Over。
除了使用Auto Layout當(dāng)你在iPad Pro上展示可讀性的內(nèi)容時(shí)依靠UIView的 readableContentGuide屬性是非常重要的這樣可以擁有讓讀者舒服的邊距。
iPhone的顯示環(huán)境可根據(jù)不同的設(shè)備和不同的握持方向而改變。
豎屏?xí)riPhone6 Plus使用的是壓縮寬度和常規(guī)高度類型。
橫屏?xí)riPhone6 Plus使用的是常規(guī)寬度和壓縮高度類型。
其他iPhone型號(hào)包括iPhone6使用相同的尺寸類型設(shè)置。
豎屏?xí)riPhone 6iPhone 5 和iPhone 4S使用的是壓縮寬度和常規(guī)高度。
橫屏?xí)r這些設(shè)備在寬高上使用的都是壓縮類。
更多建議: