2.10 手勢
人們通過在觸摸屏上執行手勢來與iOS設備進行交互。這些手勢與內容有著密切的個人聯系,增強了屏幕對象直接操作的意識。人們普遍希望在系統和應用程序中使用以下標準手勢。
注:因編輯器無法插入動畫,請參考原文動畫。
單擊(Tap):激活控制或選擇項目。
拖動(Drag):從一側到另一側移動的元件或拖動在屏幕上的元素,例如調整元素順序。
滾動(Flick):快速滾動或翻轉,如滾動相冊。
滑動(Swipe):當用一個手指執行操作時,返回到前一個屏幕,在分屏視圖控制器中顯示隱藏的視圖,在一個表視圖行中顯示刪除按鈕,或者在peek中顯示操作。
雙擊(Double tap):拉近和中心內容或圖像,或縮小如果已經放大。
捏(Pinch):向外捏的時候拉近,向內捏的時候縮小。
觸摸并按住(Touch and hold):當在可編輯或可選擇的文本中執行時,顯示一個放大的光標位置的視圖。當在某些視圖中執行時,例如集合視圖,進入允許重新排列項目的模式。
搖(Shake):啟動撤銷或重做。
一般來說,使用標準手勢。人們對標準手勢很熟悉,不喜歡被迫學習不同的方法來做同樣的事情。在游戲和其他沉浸式應用程序中,自定義手勢可以成為體驗中有趣的一部分。在其他應用程序中,最好使用標準手勢,這樣就不需要額外的努力來發現或記住它們。
不要阻礙系統的手勢。除了標準的手勢之外,一些附加的手勢還會調用系統范圍的動作,比如顯示控制中心或通知中心。人們依靠這些手勢在每個應用程序中工作。
避免使用標準手勢來執行非標準操作。除非你的應用程序是為了活躍游戲中的游戲,重新定義標準手勢的含義會導致混亂和復雜性。
提供快捷的手勢來補充、替代基于接口的導航和動作。只要有可能,就提供一種簡單的、可見的導航或執行動作的方式,即使這意味著額外的單擊或雙擊。許多系統應用包括一個導航欄,它提供了一個清晰的、可切換的按鈕回到前一個屏幕。但是,用戶也可以從屏幕一側滑動導航回來。在iPad上,人們可以通過按Home鍵,或者通過使用四根手指捏的手勢退出到主屏幕。
使用多觸點手勢來增強一些應用程序的體驗。雖然對每一個應用都有多個手指的動作并不適用,但它們可以豐富應用程序的體驗,比如游戲和繪畫應用。例如,游戲可能包括多個屏幕控制,諸如操縱桿和點火按鈕可以同時操作。
2.11 加載
當內容加載時,一個空白或靜態的屏幕會讓你的應用看起來像是被凍結,從而導致混亂和沮喪,并有可能導致人們離開你的應用。
當加載發生時,請明確說明。至少,顯示一個活動的轉輪,表示正在發生的事情。更好的是,顯示出顯著的進度,以便用戶可以衡量他們將要等待多久。
教育或娛樂人們以掩蓋加載時間。考慮一下游戲的提示,有趣的視頻序列,或者有趣的占位符圖形。
自定義加載屏幕。雖然標準進度指標通常是可以的,但有時候他們有時會感覺不到上下文。考慮通過與應用程序或游戲風格相匹配的自定義動畫和元素來設計更加身臨其境的體驗。
盡快顯示內容。在看到他們期望的屏幕之前,不要讓人等待內容加載。立即顯示屏幕,并使用占位符文本、圖形或動畫來確定哪些內容是不可用的。在內容加載時替換這些占位符元素。只要有可能,在后臺預加載即將到來的內容,例如在播放動畫或用戶正在瀏覽級別或菜單時。
有關其他指導,請參閱進度指示器。
2.12 模態(Modality)
Modality(譯者注:臨時視圖)通過阻止人們完成任務或者關閉消息或視圖來完成其他任務,從而創造了重點。行動表(Action sheets),警報(alerts)和活動視圖(activity views)提供模態體驗。
最小化使用模式。一般來說,人們喜歡以非線性方式與應用程序進行交互。只有當某個任務必須完成或放棄以繼續使用該應用程序或保存重要數據時,才考慮創建一個模態上下文引起關注。
提供一種明顯而安全的方式來退出模態任務。確保人們在忽視模態的時候總是知道他們的行動結果。
讓模態任務簡單、簡短、專注。不要在應用程序中創建應用程序。如果一個模態任務太復雜,人們就會失去當他們進入模態上下文時被暫停的任務。特別注意創建涉及層次結構的模態任務,因為用戶可能會迷失方向,并忘記了如何回溯其步驟。如果模態任務必須包含子視圖,請提供通過層次結構的單個路徑和完成路徑。避免在完成任務之外使用完成按鈕。
如果合適,顯示標識任務的標題。您還可以在視圖的其他部分提供更完整的描述任務或提供指導的文本。
提供必要的和理想的可行動的信息的預備警報(alert)。Alert中斷了體驗,需要輕按關閉,所以重要的是讓人覺得入侵是有必要的。要了解更多信息,請參閱警報。
尊重通知偏好。在“設置”中,用戶可以指定他們希望如何從應用接收通知。遵守這些偏好設計,以免他們完全關閉應用的通知。
不要在彈出窗口上方顯示模態視圖。除了警報之外,除了警告之外,彈出窗口中什么也不應該出現。在極少數情況下,當你需要在彈出窗口中顯示一個模態視圖時,在顯示模態視圖之前關閉彈窗。
與您的應用程序協調模態視圖外觀。模式視圖可以包括例如導航欄。在這種情況下,請使用與您應用中導航欄相同的外觀。
選擇適當的模態視圖樣式。您可以使用以下任何一種樣式:
全屏。覆蓋整個屏幕。用于可以在模態視圖的上下文中完成的潛在復雜任務。
頁面。部分涵蓋了以橫向為主的大型設備的底層內容。所有未覆蓋的區域都變暗,以防止與它們的交互。在較小的設備上以縱向方向覆蓋整個屏幕。用于可以在模態視圖的上下文中完成的潛在復雜任務。
表單。以屏幕為中心出現,但如果鍵盤可見,則可能會重新定位。所有未覆蓋的區域都變暗,以防止與它們的交互。可能會在較小的設備上覆蓋整個屏幕。用于收集信息。
當前上下文。顯示為與其父視圖相同的大小。用于在拆分視圖面板、彈出窗口或其他不是全屏的視圖中顯示模式內容。
選擇適當的過渡樣式以顯示模態視圖。使用與您的應用程序協調的過渡樣式,并提高臨時上下文轉換的意識。默認的轉換將模式視圖從屏幕底部向上垂直滑動,一旦關閉就退回。翻轉式轉換似乎水平翻轉視圖以顯示模態視圖。視覺上,模態視圖看起來像當前視圖的背面。一旦駁回,它就會翻轉。在您的應用程序中使用一致的模態轉換樣式。
有關模態視圖開發人員的指導,請參閱UIViewController和UIPresentationController。
2.13 導航
直到它無法達到他們的期望,人們往往不知道應用的導航。你的工作就是在不引起注意的情況下,以一種支持你的應用的結構和目的的方式來實現導航。導航應該是自然和熟悉的,不應該主導界面或者把焦點從內容中拉出來。在iOS中,有三種主要的導航方式。
分層導航。在你到達目的地之前,每一個屏幕做出一個選擇。要到達另一個目的地,您必須重新跟蹤您的步驟或從頭開始,并做出不同的選擇。在設置和郵件使用了這種導航風格。
平面導航。在多個內容類別之間切換。音樂和應用商店使用了這種導航方式。
內容驅動或體驗驅動導航。通過內容自由移動,或者內容本身定義導航。游戲、書籍和其他沉浸式應用程序通常使用了這種導航風格。
一些應用程序結合了多種導航樣式。例如,使用平面導航的應用程序可以在每個類別中實現分層導航。
總是提供一條清晰的路徑。人們應該知道你的應用在哪里,以及如何到達他們的下一個目的地。不管導航風格如何,通過內容的路徑是合乎邏輯的、可預測的、易于遵循的。一般來說,給每個屏幕一個路徑。如果需要在多個上下文中查看屏幕,可以考慮使用動作表單(action sheet)、警告(alert)、彈出窗口(popover)或模式視圖(modal view)。要了解更多信息,請查看Action Sheets,Alerts,Popovers, andModality.。
設計一種信息結構,使其快速、容易地獲得內容。組織你的信息結構,需要最少的點擊次數,點擊次數和屏幕。
使用觸摸手勢來創造流動性。通過最小的摩擦使你的界面更容易移動。例如,您可以讓用戶從屏幕的一側滑動返回到前面的屏幕。
使用標準導航組件。只要有可能,使用標準的導航控件,如頁面控件、標簽欄、分段控件、表視圖、集合視圖和分屏視圖。用戶對這些控件已經很熟悉了,他們會直觀地知道如何繞過你的應用。
使用導航條來遍歷數據的層次結構。導航欄的標題可以顯示層次結構中的當前位置,而back按鈕可以很容易地返回到以前的位置。對于特定的指導,請參Navigation Bars。
使用標簽欄來顯示內容或功能的對等分類。不管當前的位置如何,一個標簽欄可以讓人們快速輕松地在不同的類別之間切換。對于特定的指導,請參Tab Bars。
當有多個相同類型的頁面時,使用頁控件。頁控件清楚地顯示可用頁面的數量和當前活動的頁數。天氣應用程序使用頁面控件顯示位置特定的天氣頁面。對于特定的指導,請參Page Controls。
提示
分段控件和工具欄不支持導航。請使用分段控制將信息組織到不同的類別中。使用工具欄提供與當前上下文交互的控件。有關這些類型元素的附加信息,請參見Segmented Controls和Toolbars.。
2.14 評分和評論
評分和評論有助于人們在考慮是否嘗試應用程序時作出明智的決定。積極的評價和評分意味著您的應用程序的更多下載,客戶反饋可以讓您深入了解現實世界的使用情況,從而幫助您評估未來的開發工作。
提供良好的整體體驗是鼓勵積極評價和評價的最佳方法,但在適當的時候要求反饋也是至關重要的。請求人們評價您的應用程序時,請牢記這些注意事項。
僅在用戶展示與您的應用程序的互動后才能要求評級。例如,在完成游戲級別或生產力任務時提示用戶。在首次啟動或入場時不要求評級。允許用戶擁有充足的時間形成意見。
不要中斷用戶。特別是當他們執行時間敏感或壓力很大的任務時。查找邏輯停頓或停止點,評級請求最有意義。
不要打擾用戶。重復的評級提示可能會刺激,甚至可能會對用戶對您的應用程序的意見產生負面影響。在評級請求之間至少允許一周或兩周,并在用戶展示與您的應用程序進一步互動后再次提示。
2.14.1系統評級和審查提示
該系統為應用程序提供了一種一致的、非侵入式的方式來請求評級和評論。要使用這個功能,您只需標識應用程序用戶體驗中的位置,在這里請求反饋是有意義的。如果用戶還沒有給出反饋,而且最近還沒有提出請求,系統會顯示一個應用內提示,要求進行評分和可選的書面評論。用戶可以通過一個點擊來提供反饋或取消提示。(在設置中,用戶也可以選擇不接受他們安裝的所有應用的評級提示。)在365天的時間內,該系統會自動將提示符的顯示次數限制為每款應用的三次。
使用提供的系統提示。該系統的評級提示提供了一個熟悉的,高效率的經驗,旨在使用戶的影響微乎其微。
不要使用按鈕或其他控件來請求反饋。由于系統限制了評級提示的頻率發生,因此嘗試響應控制請求反饋可能不會顯示評級提示。
對于開發人員指南,請參閱SKStoreReviewController在StoreKit。
提示響應評論是與用戶溝通,解決問題,并可能提高應用程序評級的好方法。有關最佳做法,請參閱Responding to Reviews on the App Store。
2.15 請求許可
用戶必須授予應用程序訪問個人信息的權限,包括當前位置,日歷,聯系信息,提醒和照片。雖然人們欣賞使用可以訪問這些信息的應用程序的便利性,但他們也期望能夠控制他們的私人數據。例如,人們喜歡能夠自動標記照片的物理位置或找到附近的朋友,但他們也希望禁用這些功能的選項。
僅在您的應用程序明確需要時才能請求個人數據。懷疑個人信息的請求是很自然的,特別是如果沒有明顯的需要。確保權限請求僅在人們使用明確需要個人數據的功能時發生。例如,一個應用程序可能只會在激活位置跟蹤功能時請求訪問當前位置。
如果請求不明顯的話,解釋為什么你的應用程序需要信息。您可以向系統提供的權限請求警報(alert)添加自定義文本。讓文字更具體、更有禮貌,這樣人們就不會感到有壓力了。保持文本簡短,并使用句子。不需要包含你的應用名稱。該系統已經將你的應用程序識別為發出請求的應用程序。
只有在應用程序需要運行時才請求啟動權限。如果用戶的應用程序顯然依賴于他們的個人信息來操作,那么用戶不會被這個請求打擾。
不要不必要地請求位置信息。在訪問位置信息之前,請檢查系統以查看是否啟用了位置服務。有了這些知識,您可以將警報延遲到某個特性真正需要它的時候,或者可能完全避免警報。
要學習如何實現位置特性,請參閱位置和地圖編程指南。