用戶通常希望能夠在他們的所有設(shè)備和任何界面中使用他們喜歡的應(yīng)用程序。在iOS中,當在iPad上進行多任務(wù)處理,可以將界面元素和布局配置為自動更改不同設(shè)備上的形狀和大。在分屏視圖,當屏幕旋轉(zhuǎn)時,很有必要設(shè)計一個適應(yīng)性強的界面,從而保證在任何環(huán)境中提供良好的體驗。
設(shè)備屏幕尺寸和方向
iOS設(shè)備有各種不同的屏幕尺寸,可以基于肖像或景觀定向。

自動布局
自動布局是構(gòu)建自適應(yīng)界面的開發(fā)工具。使用自動布局,您可以定義管理應(yīng)用程序內(nèi)容的規(guī)則(稱為約束)。例如,您可以約束一個按鈕,不管可用的屏幕空間如何,使其總是水平居中,并且位于圖像下方8點。

當檢測到某些環(huán)境變化(稱為特征)時,自動布局將根據(jù)指定的約束自動重新調(diào)整布局。可以將應(yīng)用設(shè)置為動態(tài)適應(yīng)各種特征,包括:
1.不同的設(shè)備屏幕尺寸,分辨率和色域(sRGB / P3)
2.不同的設(shè)備方向(縱向/橫向)
3.分屏視圖
4.iPad上的多任務(wù)模式
5.動態(tài)類型文字大小更改
6.國際化功能基于區(qū)域設(shè)置啟用(從左到右/從右到左的布局方向,日期/時間/數(shù)字格式,字體變化,文本長度)
7.系統(tǒng)功能可用性(3D Touch)
布局指南和安全區(qū)
布局指南定義了實際上不顯示在屏幕的矩形區(qū)域,但有助于內(nèi)容的定位,對齊和間距。該系統(tǒng)包括預(yù)定義的布局指南,可以輕松地在內(nèi)容上應(yīng)用標準邊距,并限制文本的寬度以獲得最佳的可讀性。您還可以定義自定義布局指南。

堅持UIKit定義的安全區(qū)域和布局邊距。這些布局指南于基于設(shè)備和頁面進行適當?shù)脑O(shè)置。安全區(qū)域還可以防止內(nèi)容覆蓋狀態(tài)欄,導(dǎo)航欄,工具欄和標簽欄。系統(tǒng)提供的標準視圖會自動采用安全區(qū)域布局指南。
大小類別
大小類別是根據(jù)大小自動分配給內(nèi)容區(qū)域的特征。系統(tǒng)定義了兩個尺寸類,常規(guī)(表示展開空間)和約束(表示約束空間),它們描述了視圖的高度和寬度。
視圖可以包含大小類別的任何組合:
常規(guī)寬度,常規(guī)高度
緊湊的寬度,緊湊的高度
規(guī)則寬度,緊湊高度
緊湊寬度,常規(guī)高度
與其他環(huán)境變化一樣,iOS會根據(jù)內(nèi)容區(qū)域的大小類別動態(tài)進行布局調(diào)整。例如,當垂直尺寸類別從緊湊高度變?yōu)檎8叨葧r,可能是因為用戶將設(shè)備從橫向旋轉(zhuǎn)到縱向,標簽欄可能會變高。
設(shè)備模式

多任務(wù)大小類

在iPad上,當您的應(yīng)用程序在多任務(wù)配置中運行時,大小類也適用。
布局注意事項
在上下文更改期間,保持對當前內(nèi)容的關(guān)注。內(nèi)容是您的最高優(yōu)先級。改變環(huán)境變化的焦點可能是迷失方向,令人沮喪,讓人覺得自己已經(jīng)失去了對應(yīng)用的控制。
確保主要內(nèi)容以默認大小清晰。人們不必橫向滾動閱讀重要文本,或縮放以查看主圖像,除非他們選擇更改大小。
確保主要內(nèi)容以默認大小清晰。人們不必橫向滾動閱讀重要文本,或縮放以查看主圖像,除非他們選擇更改大小。
在整個應(yīng)用程序中保持整體一致的外觀。一般來說,具有相似功能的元素應(yīng)該類似。
使用對齊來輕松掃描并傳達組織和層次結(jié)構(gòu)。對齊使得應(yīng)用程序看起來整齊有序,幫助人們在滾動時進行關(guān)注,并使查找信息變得更加容易??s進和對齊也可以指示內(nèi)容組如何相關(guān)。
擴展視覺元素以填充屏幕。您的應(yīng)用程序應(yīng)該利用所有可用的屏幕空間。
確保內(nèi)容的邊距和間距。通常,內(nèi)容應(yīng)該舒適地間隔開并且從屏幕的邊緣稍微插入。一般來說,內(nèi)容最適合中心和對稱地插入,所以它在任何方向看起來都很好。為獲得最佳效果,請使用標準的系統(tǒng)提供的界面元素,自動布局,標準邊距,并遵守安全區(qū)域布局指南。
在較大的設(shè)備上顯示文本時應(yīng)用可讀性邊距。這些邊距保持文本行足夠短以確保舒適的閱讀體驗。

為互動元素提供充足的觸控目標。嘗試為所有控件保持44pt x 44pt的最小可打包面積。
避免免費的布局變更。只是因為有人旋轉(zhuǎn)設(shè)備并不意味著整個布局需要改變。例如,如果您的應(yīng)用程序以縱向模式顯示圖像網(wǎng)格,則不必在橫向模式下呈現(xiàn)與列表相同的圖像。相反,它可能只是調(diào)整網(wǎng)格的尺寸。嘗試在所有情況下保持可比的經(jīng)驗。
如果可能,支持縱向和橫向。人們喜歡以不同的方向使用應(yīng)用程序,所以最好在滿足這個期望時。
如果您的應(yīng)用僅支持一個方向,則支持兩種變體。如果您的應(yīng)用程序以單一方向運行至關(guān)重要,請確保它支持兩種方向變體。例如,如果您的應(yīng)用程序僅以橫向模式運行,則無論用戶是左右旋轉(zhuǎn)設(shè)備,都應(yīng)該可以使用它。如果設(shè)備在使用您的應(yīng)用程序時旋轉(zhuǎn)180度,則應(yīng)用程序應(yīng)將其內(nèi)容旋轉(zhuǎn)180度。如果您的應(yīng)用程序在有人將設(shè)備設(shè)置為錯誤時不會自動旋轉(zhuǎn),那么他們會直觀地旋轉(zhuǎn)它。你不需要告訴他們
根據(jù)上下文自定義應(yīng)用程序?qū)πD(zhuǎn)的響應(yīng)。例如,通過旋轉(zhuǎn)設(shè)備讓人們移動角色的游戲可能不應(yīng)該在游戲過程中切換方向。然而,它可以根據(jù)當前方向顯示菜單和介紹序列。
準備文字大小更改。人們期望大多數(shù)應(yīng)用程序在“設(shè)置”中選擇不同的文本大小時都會進行適當?shù)捻憫?yīng)為了適應(yīng)一些文本大小的更改,您可能需要調(diào)整布局。