iOS 7人機交互指南-UI設計基礎:整合iOS系統
使用標準的UI元素
盡可能使用UIKit框架提供的標準UI元素,這樣用戶和開發者都能從中獲益:
對開發者而言,如果iOS進行了重新設計,那么標準的UI元素能夠在系統更新時自行更新,而自定義的元素則不會。
對用戶而言,標準的UI元素會讓他們覺得很舒服,這樣他們可以立即理解如何在應用中使用這些標準的UI元素。
為了好好利用這些標準的UI元素,需注意以下至關重要的幾點:
遵循每個UI元素的使用指南。當UI元素的外觀、運行方式和用戶期望的一樣時,他們可依據此前的經驗在你的app使用這些元素。你可以在Bars,Content Views, Controls以及Temporary Views中找到UI元素使用指南。
一般來說,不要使用自定義UI控件來執行一個標準的交互操作。首先,要問問自己為什么要創建一個交互行為方 式與標準元素一致的自定義UI元素。如果你僅僅是想要一個自定義的外觀,那可以考慮通過使用UIKit框架的外觀自定義API來改變標準UI元素的外觀, 或者改變元素的色調。如果你想要一個略有不同的UI控件交互行為,那首先要確保通過對標準元素的調整可以達到你想要的效果。如果你想要一個完完全全的自定 義UI,那么***是設計一個和標準元素看起來很不一樣的自定義元素。
TIP:Interface Builder可以幫你簡單地創建標準的UI元素,使用外觀自定義API,設置屬性,并在控件中添加自定義圖標或者系統提供的圖標。關于Interface Builder更多詳情,可以查看Xcode 用戶指南。
不要使用系統定義的按鈕和圖標來表達其他一些含義。你可以在應用中使用iOS 提供的按鈕和圖標。要確保你已理解了相關文檔,理解了按鈕和圖標使用的語義環境,不要簡單依賴你對按鈕和圖標外觀的理解和看法。
如果系統沒有提供適當的按鈕或者圖標來準確地傳達app的功能,那么你可以自行創建一個。Bar Button Icons這一章節可以幫你更好地設計自定義圖標。
如果你的app能提供沉浸式的任務或體驗,那么創建完全自定義的控件就可能是合理的做法。因為你正在創建一種***的環境,并且知道如何在這類app中管理用戶體驗所期待的環境。
對設備使用方向(橫屏和豎屏)做出相應
用戶一般期望在橫屏和豎屏模式下都能使用設備,所以你的app***能做出響應。
不管設備處于什么方向,首先都要維持對主要內容的聚焦和關注。用戶使用你的app來瀏覽他們關心的內容或者與內容進行交互。移動設備旋轉后,改變用戶的視覺焦點可能會讓他們倍感迷惑,并產生對app失控的感覺。
一般情況下,要讓app支持橫屏和豎屏兩種模式。用戶期望在任何模式下都能使用你的app,***能滿足用戶的要求,尤其是iPad用戶。不過,也有一些app只有橫屏或豎屏運行方式。如果你的app只能在一個方向(橫屏或豎屏)運行,你應該:
1.不管設備處于橫屏模式還是豎屏模式,都要以應用支持的方向啟動。比如,如果游戲app或者視頻觀看類app只能以橫屏模式運行,以橫屏模式啟動app是合乎情理的,即便當前設備處于豎屏模式。這樣即便用戶以豎屏模式啟動app,他們也知道把設備旋轉至橫屏模式。
2.避免用UI元素告知用戶需旋轉設備。以app支持的方向運行已經清楚地告訴用戶需要旋轉設備,不需要增加多余雜亂的UI元素。
3.支持橫屏和豎屏兩種模式。比如,如果app僅支持橫屏模式,不管Home鍵在左還是在右,用戶應該都會使用它。如果用戶把設備旋轉180度,那么app***也能作出旋轉180度的響應。
如果旋轉設備持有方向是用戶“輸入”(或者行為輸入)的一部分,那么你可以以APP獨有的方式處理。比如, 一款游戲可以讓用戶通過旋轉設備來移動游戲塊,那么這款游戲就不能再對設備方向旋轉進行相應。這種情況下,在用戶進入游戲的主任務之前,你的游戲應當支持 橫屏和豎屏兩種模式,允許用戶在兩者之間進行選擇。在用戶開始應用的主任務后,你可以以app“特有”的方式來相應設備方向的更改(此處特有的方式指的是 旋轉設備來進行特定的游戲操作)。
在iPhone上,對設備方向更改進行相應的同時也要預測用戶的需求所在。用戶從豎屏模式旋轉為橫屏模式,通常是想要查看“更多內容”。僅按比例縮放內容會難以滿足用戶心理期望。相反應該重新設計文本的行數,需要的話,也得更改一些UI元素的布局,這樣用戶才能在屏幕上看到更多內容。
在iPad上,app要盡量支持所有的方向,努力滿足用戶的需求。iPad更大的屏幕降低了用戶旋轉設備以 “查看更多”內容的欲望。用戶并不十分關心設備的框架或者Home鍵的位置,因此他們不認為設備應該有一個默認的方向。不管設備處于什么方向,你的app 應該能為用戶提供良好的用戶體驗,應該盡可能地鼓勵用戶從不同方向(橫屏或豎屏)與iPad進行交互。
以下是iPad app設計相關的幾點規范:
1.考慮設備方向改變時如何展示輔助信息和功能。雖然重要內容是視覺的焦點,但你也可以通過對設備方向更改的響應來展示次要功能和內容。
比如iPad上的Mail應用,賬戶和郵箱列表屬于次要內容(選中信息是主要內容)。橫屏模式下,次要內容展示在左側面板;而豎屏模式下,次要內容展現在彈出面板中。
還有個例子,一款iPad游戲以橫屏模式展示了一個矩形游戲棋盤。在豎屏模式下,棋盤頂部和底部多出了一些空間,那么這款游戲就需要重新設計以適應豎屏顯示模式。不是簡單地拉伸棋盤,而要展現補充信息來填充額外的空間。
2.避免無端地改變布局。如果可能的話,不管設 備處于橫屏模式還是豎屏模式,都要為用戶提供始終如一的用戶體驗。這樣當設備旋轉時,相似的使用體驗可以讓用戶維持一貫的使用模式。比如,你的iPad app在橫屏模式下以網格的形式展示圖片,那么在豎屏模式下,就沒必要以列表的形式展示相同的信息。
3.可能的話,在設備方向旋轉的情況下,盡量避免重新定義信息內容和重新設計文本。不管設備處于什么方向,應用都應該維持相似的信息格式。如果用戶在閱讀文本,他們旋轉設備后,要避免用戶因離開原先閱讀的位置而感到迷惑。如果應用內容格式 更改是不可避免的,要用動畫來幫助用戶明白其中的改變。比如設備在橫屏和豎屏模式之間進行了切換,你必須增加或者刪除一些文字,這時候你可以考慮使用淡入 和淡出的動畫效果。為了設計出適當的橫屏豎屏方案,你可以思考下,在現實世界中你期望如何與內容進行物理性的交互。
4.為app橫屏和豎屏模式各自設計一個***的啟動頁。不管當前設備處于什么方向,一個平滑運行的***的啟動頁可以讓用戶忽略設備當前的方向。與iPhone主屏形成了一個對比,iPad主屏支持橫屏和豎屏兩個模式,所以如果用戶剛從其他app中退出來,那么他會喜歡以上個app的使用方式啟動你的app。
弱化對文件和文檔的處理
iOS app可幫用戶創建和管理文件,但這并不意味著用戶不得不考慮iOS 設備上的文件系統。
在iOS app中,沒有一個類似OS X系統中的Finder,用戶不應該被要求與文件進行交互,不應該面對任何讓他們想到文件元數據或者儲存位置之類的信息。比如:
1.一個會暴露文件層級的打開或保存文件的對話框。
2.關于文件權限狀態的信息
盡量允許用戶在不需要打開電腦iTunes的情況下管理文檔。考慮使用iCloud來幫助用戶訪問他們所有設備上的內容。App如何為用戶提供優秀的iCould體驗?可參考iCould一節。
如果你的應用幫助用戶創建和編輯文檔,那么可以嘗試提供某種文檔選擇器,來幫用戶打開現有文檔或創建新文檔。理想情況下,文檔選擇器應該:
1.具有高質量的圖形外觀。用戶應該可以簡單地通過屏幕上文檔的可視化形式來識別出他們想要的文檔。
2.讓用戶使用最少的手勢來做他們想做的。比如用戶可能通過橫屏滾動或者網格的形式來操作文檔,并通過點擊來打開文檔。
3.提供新建文檔動能。文檔選擇器允許用戶點擊圖片占位符來創建新文檔,而不是讓用戶去某個地方創建新文檔。
TIP:你可以使用Quick Look預覽功能讓用戶在你的應用中預覽文檔,即便你的app不支持打開文檔。如何在應用中提供該功能呢?可參考Quick Look一節。
給用戶一種安全感,讓他們知道自己的工作進程始終會被保存,除非他們準確地執行取消或者刪除。如果你的應用為用戶提供創建和編輯文檔的功能,要讓用戶知道無需他們自己動手執行保存。iOS app應該承擔保存用戶輸入內容的責任,無論是在他們打開一個不同的文檔時,或者與其他app進行切換時,app都能保存他們的輸入內容。
如果你應用的主要功能不是創造內容,但你允許用戶在查看信息與編輯信息之間進行切換,那么這時候你可以要求用戶對信息變更進行保存。
這種情況下,在展示信息的視圖中提供一個編輯按鈕。當用戶點擊編輯按鈕進入編輯狀態后,你可以使用一個保存按鈕來替代編輯按鈕,并增加一個取消 按鈕。編輯按鈕的變化可以提醒用戶處于編輯狀態,可能需要對內容進行保存,而取消按鈕則為用戶提供了不保存內容變更的情況下推出編輯狀態的選擇。
這種變化可以提醒人們,他們現在正處于編輯模式,可能需要執行保存操作,而“取消”按鈕則為他們提供了在不保存變更的情況下直接退出編輯模式的出口。
如果需要,可提供app的設置選項
有些app可能需要為用戶提供配置或設置的選項,但是大多數app不需要這樣的設計,或者可以延遲對這個環節的設置。成功的app可以讓用戶快速上手,或者在主要的UI中提供一些可調整的方法。
可能的話,避免把用戶引導至“設置”需求中。很重要的一點,用戶必須首先離開你額應用才能打開“Settings app”,你也不想鼓勵用戶這么做。
當你能按照大多數用戶期望的那樣來設計app,你也就降低了用戶設置app的需求。如果你需要用戶的某些信息,可先查詢系統儲存的用戶信息,而不是首先要求用戶為你提供。如果你確定你必須在iOS app中提供相關設置,可查看iOS app編程指南的“The Settings Bundle”一節。
如果需要,盡量讓用戶在你的app中進行操作。在app中集成配置選項可以讓變化同步表現出來,這樣用戶不需要離開你的app就能進行相關設置。
如果需要,盡量在主要的UI中提供設置選項。如果主要UI代表著主要任務,或者是用戶可能會頻繁地更改設置,這些情況下,把設置選項放在主要UI中就非常有意義了。如果用戶只是偶爾改變下app的設置,那就把它們放在單獨的視圖中。