適應(yīng)性和布局

2018-08-12 21:55 更新

適應(yīng)性和布局

為自適應(yīng)而開發(fā)

人們通常希望在他們所有的設(shè)備和多種情境中使用自己喜歡的應(yīng)用程序,比如在不同的設(shè)備方向上和 iPad 的分屏情況下。尺寸類別(Size classes)和自動布局(Auto Layout)可以通過定義屏幕的布局、視圖控制器和視圖在環(huán)境變化時候應(yīng)該怎么適應(yīng)來幫助你實現(xiàn)這個愿望。(顯示環(huán)境[display environment]的概念指的是設(shè)備的整個屏幕或者其中一部分,比如彈出框的區(qū)域或者 iPad 分屏視圖中其中一側(cè)的區(qū)域。)

iOS 在特征集合(trait collection)的定義中包含了顯示環(huán)境的概念,特征集合囊括了尺寸類別(size class),顯示比例(display scale)和用戶界面語言(user interface idiom)。你可以使用一個特征集合讓你的視圖和視圖控制器響應(yīng)顯示環(huán)境的變化。

iOS 定義了兩個尺寸類別(size class),常規(guī)的(regular)和壓縮的(compact)。常規(guī)尺寸與拓展的空間緊密相關(guān),壓縮尺寸與約束的空間相關(guān)。想要定義一種顯示環(huán)境,你需要定義一種橫屏尺寸類別,與一種豎屏尺寸類別。如你所想,一個 iOS 設(shè)備在豎屏模式可以使用一套類別,而橫屏模式下可以使用另一套類別。

iOS 能隨著尺寸類別和顯示環(huán)境變化而自動生成不同布局。舉個例子,當(dāng)垂直尺寸從壓縮變?yōu)槌R?guī)時,導(dǎo)航欄和工具欄會自動變高。

當(dāng)你靠尺寸類別來驅(qū)動布局變化時,你的應(yīng)用在任何顯示環(huán)境時都能顯示得很好。關(guān)于如何在 Interface Builder 中更好的使用尺寸類別,你可以查閱 Size Classes Design Help.

注:在一種尺寸類別中,持續(xù)使用 Auto Layout 進行小的布局調(diào)整,比如拉伸或壓縮內(nèi)容。更多 Auto Layout,參看 Auto Layout Guide.

下面的實例可以幫助你形象展現(xiàn)尺寸類型如何適配不同設(shè)備的顯示環(huán)境。例如:iPad(包括 iPad Pro)在長寬和橫屏豎屏?xí)r都使用常規(guī)尺寸類型。換句話說,iPad 顯示環(huán)境一直處于垂直和水平的常規(guī)狀態(tài)。

注:合格的 iPad 型號支持多任務(wù),你的應(yīng)用可能需要與其他應(yīng)用共享同一個屏幕。確保使用 Auto Layout,這樣你可以在用戶使用多任務(wù)功能時響應(yīng)他,比如 分屏模式(Split View)和多任務(wù)分屏模式(Slide Over)。

除了使用 Auto Layout,當(dāng)你在 iPad Pro 上展示可讀性的內(nèi)容時,依靠 UIView 的 readableContentGuide 屬性是非常重要的,這樣可以擁有讓讀者舒服的邊距。

iPhone 的顯示環(huán)境可根據(jù)不同的設(shè)備和不同的握持方向而改變。

豎屏?xí)r,iPhone6 Plus 使用的是壓縮寬度和常規(guī)高度類型。

橫屏?xí)r,iPhone6 Plus 使用的是常規(guī)寬度和壓縮高度類型。

其他 iPhone 型號,包括 iPhone6 使用相同的尺寸類型設(shè)置。

豎屏?xí)r,iPhone 6,iPhone 5 和iPhone 4S 使用的是壓縮寬度和常規(guī)高度。

橫屏?xí)r,這些設(shè)備在寬高上使用的都是壓縮類。

在不同環(huán)境提供良好體驗

當(dāng)你使用自適應(yīng)來開發(fā) UI 時,你可以保證UI跟隨顯示環(huán)境變化而適當(dāng)?shù)仨憫?yīng)。遵照這些指南,你可以給用戶良好的設(shè)備響應(yīng)體驗。

在所有環(huán)境下都保持對主體內(nèi)容的專注。這是最高優(yōu)先級。人們使用應(yīng)用時,瀏覽感興趣的內(nèi)容并與之發(fā)生互動。隨著環(huán)境變化改變專注點會讓用戶感覺到迷失方向,讓他們感覺對應(yīng)用失去控制。

避免布局上不必要的變化。在所有環(huán)境中保持一致的使用體驗,能讓人們在旋轉(zhuǎn)設(shè)備或在不同設(shè)備上運行你的應(yīng)用時維持穩(wěn)定的使用模式。例如,如果你在水平的常規(guī)模式下使用了網(wǎng)格來顯示圖像,那么無需在壓縮模式下使用列表來展示同樣的內(nèi)容,雖然你可能調(diào)整了網(wǎng)格的尺寸。

如果你的應(yīng)用只在一個方向上運行,那么請直接一點。人們希望在各種握持方式下都可以使用你的應(yīng)用,能滿足這個期待是最好的。但是,如果你的應(yīng)用只在一個方向下運行,那么你應(yīng)當(dāng)注意:

  • 避免出現(xiàn)提示人們旋轉(zhuǎn)設(shè)備的相關(guān) UI 元素。讓應(yīng)用在支持的方向下清晰地運行,如果需要用戶旋轉(zhuǎn)設(shè)備,不要給UI添加不必要的混亂。
  • 支持同一個方向上的變化。例如,如果一個應(yīng)用只能橫屏運行,用戶無論用左手或是右手握持時都能觸及到 home 鍵。如果用戶在使用應(yīng)用時180度旋轉(zhuǎn)設(shè)備,那最好應(yīng)用內(nèi)容也能及時響應(yīng)并旋轉(zhuǎn)180度。

如果你的應(yīng)用將設(shè)備方向翻轉(zhuǎn)視為用戶輸入(的一種指令),那么就按照程序設(shè)定的方式來響應(yīng)設(shè)備翻轉(zhuǎn)。舉個例子,一個游戲讓用戶利用設(shè)備翻轉(zhuǎn)來移動游戲中的部件,那么這個游戲應(yīng)用本身(的 UI)不能對翻轉(zhuǎn)屏幕產(chǎn)生響應(yīng)。在這種情況下,你必須關(guān)聯(lián)兩個需要變化的方向,并且允許人們在這兩個方向切換直到他們開始(了解并執(zhí)行)應(yīng)用的主體任務(wù)。一旦人們開始執(zhí)行主要任務(wù),那就開始按程序設(shè)定的那樣來響應(yīng)設(shè)備的動作。

使用布局來溝通

布局包含的不僅僅是一個應(yīng)用屏幕上的UI元素外觀。你的布局,應(yīng)該告訴用戶什么是最重要的,他們的選擇是什么,以及事物是如何關(guān)聯(lián)起來的。

強調(diào)重要內(nèi)容或功能,讓用戶容易集中注意在主要任務(wù)上。有幾個比較好的辦法是在屏幕上半部分放置主要內(nèi)容——遵循從左到右的習(xí)慣——從靠近左側(cè)的屏幕開始:

使用不同的視覺化重量和平衡來告訴用戶當(dāng)前屏顯元素的主次關(guān)系。大型控件吸引眼球,比小的控件更容易在出現(xiàn)時被注意到。而且大型控件也更容易被用戶點擊,這讓它們在應(yīng)用中尤其有用——就像電話和時鐘(上面的按鈕)那樣——能讓用戶經(jīng)常在容易分心的環(huán)境下仍然保持正常使用。

使用對齊來讓閱讀更舒緩,讓分組和層次之間更有秩序。對齊讓應(yīng)用看起來整潔而有序,也讓用戶在滑動整屏內(nèi)容時更容易定位和專注于重要信息。不同信息組的縮進與對齊讓它們之間的關(guān)聯(lián)更清晰,也讓用戶更容易找到某個控件。

確保用戶在內(nèi)容處于默認尺寸時便可清楚明白它的主要內(nèi)容與含義。例如,用戶應(yīng)當(dāng)無需水平滾動就能看到重要的文本,或不用放大就可以看到主體圖像。

準備好改變字體大小。用戶期望大多數(shù)應(yīng)用都可以響應(yīng)他們在 iOS 的設(shè)置中設(shè)定的字體大小。為了適應(yīng)一些文本大小的變化,你也許需要調(diào)整布局;想要得到更多文本顯示相關(guān)的信息,請查閱下文“顏色與字體”中相關(guān)的內(nèi)容。

盡量避免 UI 上不一致的表現(xiàn)。在一般情況下,有著相似功能的控件看起來也應(yīng)該類似。用戶常常認為他們看到的不同總有原因,而且他們傾向于花時間去嘗試(譯者按:因此為了避免用戶做無用的嘗試,建議類似的功能外觀都保持一樣。)

給每個互動的元素充足的空間,從而讓用戶容易操作這些內(nèi)容和控件。常用的點按類控件的大小是44 x 44點(points)。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號