編者按:iOS 10人機(jī)界面設(shè)計指南中文版也來了宾巍!今天第二部分是交互部分咕幻,包括16個小節(jié),從最新的3D Touch到身份驗證顶霞、加載肄程、導(dǎo)航等等細(xì)節(jié)都有細(xì)致入微的教學(xué)锣吼,感謝譯者@喵大神經(jīng) ,一起來學(xué)習(xí)蓝厌。
往期回顧:《UI設(shè)計師必讀的IOS 10人機(jī)界面設(shè)計指南 (一)》
英文好的同學(xué)可以直接到這學(xué)習(xí):https://developer.apple.com玄叠。
2. 交互(Interaction)
2.1 3D 觸摸(3D Touch)
2.1.1 主屏幕交互(Home Screen Interaction)
2.1.2 輕壓(Peek)和重壓(Pop)
2.1.3 Live Photos
2.2 輔助功能(Accessibility)
2.3 音頻(Audio)
2.4 身份驗證(Authentication)
2.5 數(shù)據(jù)輸入(Data Entry)
2.6 反饋(Feedback)
2.7 文件處理(File Handling)
2.8 啟動初體驗(First Launch Experience)
2.9 手勢(Gestures)
2.10 加載(Loading)
2.11 模態(tài)(Modality)
2.12 導(dǎo)航(Navigation)
2.13 請求許可(Requesting Permission)
2.14 設(shè)置(Settings)
2.15 用辭(Terminology)
2.16 撤銷和重做(Undo and Redo)
2.1 3D 觸摸(3D Touch)
3D Touch 為觸碰式交互增加了一個維度。在支持3D Touch 的設(shè)備上拓提,用戶通過對觸摸屏施加不同的力度來實現(xiàn)更多的功能读恃,譬如觸發(fā)菜單、顯示更多的內(nèi)容或是播放動畫代态。用戶無需學(xué)習(xí)新的手勢來使用3D Touch寺惫。當(dāng)他們輕壓屏幕并且獲得應(yīng)答的時候就能立即發(fā)現(xiàn)這一新的交互維度。
2.1.1 主屏幕交互(Home Screen Interaction)
在支持3D Touch的設(shè)備的主屏按壓應(yīng)用圖標(biāo)會觸發(fā)相應(yīng)的操作視圖胆数。該視圖讓你能夠快速地執(zhí)行常用的應(yīng)用任務(wù)和預(yù)覽有趣的信息肌蜻,譬如日歷應(yīng)用互墓,它能夠提供創(chuàng)建新事件的快捷操作必尼,同時顯示日程表上的下一個事件。了解相關(guān)設(shè)計指導(dǎo)篡撵,請參閱Home Screen Action和Widgets判莉。
2.1.2 輕壓(Peek)和重壓(Pop)
輕壓允許用戶使用3D Touch在當(dāng)前環(huán)境上預(yù)覽一個臨時視圖內(nèi)的對象,譬如一個頁面育谬、鏈接或者文件券盅。要想在支持該功能的設(shè)備上實現(xiàn)預(yù)覽,只需用手指對應(yīng)用施加一點(diǎn)壓力膛檀,而抬起手指就能退出預(yù)覽锰镀。要想打開對象來瀏覽更多的內(nèi)容,請更重地按壓屏幕直到對象放大到填滿屏幕咖刃。在一些輕壓視圖上泳炉,你可以通過上滑來顯示相應(yīng)的操作按鈕。譬如嚎杨,在Safari打開了某個鏈接的輕壓視圖時花鹅,你可以通過上滑展開相應(yīng)的操作按鈕——打開鏈接,添加至閱讀列表和復(fù)制鏈接枫浙。
利用輕壓視圖提供實時的刨肃,內(nèi)容豐富的預(yù)覽
理想情況下,輕壓視圖為該項提供足夠的信息以補(bǔ)充說明當(dāng)前任務(wù)箩帚,或者幫助你決定是否完全地打開該項真友。例如,預(yù)覽郵件(Mail)信息中的鏈接紧帕,從而決定是否在Safari瀏覽器中打開或者分享給朋友盔然。輕壓視圖一般被利用于表單視圖中,提供一個行項的詳細(xì)信息,從而決定是否選擇該項。
設(shè)計足夠大的輕壓視圖
設(shè)計一個足夠大的輕壓視圖從而保證手指不會遮擋到內(nèi)容轻纪。確保輕壓視圖能夠提供足夠詳細(xì)的信息油额,以便用戶決定是否按地更重來完全地打開該項。
統(tǒng)一使用輕壓和重壓功能
如果你只在某些地方使用輕壓和重壓刻帚,而不在另一些地方使用潦嘶,用戶就不會知道到底哪里可以使用這個功能,而且可能會認(rèn)為你的應(yīng)用或是他們的設(shè)備出了問題崇众。
允許每個輕壓視圖都能夠被重壓
雖然輕按視圖能夠提供給用戶他們所需的大部分信息掂僵,但如果他們想離開當(dāng)前任務(wù)并轉(zhuǎn)移注意力至該項時,應(yīng)該允許他們過渡到重壓顷歌。
避免在輕壓視圖中呈現(xiàn)按鈕式元素
如果用戶抬起手指去點(diǎn)擊類似按鈕的元素锰蓬,輕壓就會消失。
不要讓同一項具備輕壓和編輯菜單(Edit menu)兩個功能
當(dāng)一個項目同時啟用兩個功能時眯漩,不但會讓用戶感到困惑芹扭,也會讓系統(tǒng)難以判斷用戶目的。了解更多指導(dǎo)赦抖,請參閱Edit Menus舱卡。
適當(dāng)時提供操作按鈕
不是每個一輕壓都需要操作按鈕,但這是一個為常用任務(wù)提供快捷操作的好方式队萤。如果你的應(yīng)用已經(jīng)為項目提供了自定義的點(diǎn)擊并長按(touch-and-hold)動作轮锥,那么最好在輕壓里包含同樣的操作。
避免為打開被輕壓的項目提供操作按鈕
用戶一般都通過更重的按壓來打開他們輕壓的項目要尔。所以舍杜,沒有必要再提供一個明顯的打開按鈕。
不要讓輕壓成為唯一的執(zhí)行項目操作的操作
并不是所有設(shè)備都支持輕壓和重壓赵辕,甚至有的用戶會關(guān)閉3D觸摸功能既绩。你的應(yīng)用為這些情況考慮其它觸發(fā)項目操作的方式。譬如匆帚,你的應(yīng)用可以將輕壓的快捷操作映射到一個視圖中熬词,該視圖會在點(diǎn)擊和長按時出現(xiàn)。
2.1.3 Live Photos
應(yīng)用可以通過支持Live Photos吸重,并在照片中加入壓感用來查看動態(tài)回憶互拾。當(dāng)你按壓它們時,Live Photos死而復(fù)生嚎幸,通過動作和聲音再現(xiàn)拍照的前后時刻颜矿。了解相關(guān)設(shè)計指導(dǎo),請參閱Live Photos嫉晶。
2.2 輔助功能(Accessibility)
iOS 提供了大量的輔助功能來幫助失明骑疆、失聰以及其他殘疾群體田篇。大部分以UIKit為基礎(chǔ)的應(yīng)用能夠輕易地具有輔助性,讓更多的用戶來使用你的應(yīng)用箍铭,因為你為所大眾提供了平等的使用體驗泊柬。
為圖片、圖標(biāo)和界面元素提供可選擇的文字標(biāo)簽
可選擇的文字標(biāo)簽在屏幕上是不可見的诈火,但是他們讓VoiceOver能夠通過聲音描述屏幕上有什么兽赁,讓失明用戶能夠輕易地使用導(dǎo)航。
相應(yīng)輔助功能的偏好設(shè)置
如果你的應(yīng)用使用UIKit來實現(xiàn)用戶界面冷守,文字刀崖、界面元素就會自動調(diào)整至相應(yīng)輔助功能的偏好設(shè)置,譬如加粗并且更大的文字拍摇。你的應(yīng)用也應(yīng)當(dāng)在適當(dāng)?shù)臅r候檢查并相應(yīng)輔助功能的偏好設(shè)置亮钦,譬如當(dāng)減弱動態(tài)效果(reduce motion)的開關(guān)被打開時。采用自定義字體的應(yīng)用應(yīng)該力圖和系統(tǒng)字體的輔助特性保持一致充活。
測試應(yīng)用的輔助功能
除了文字和動態(tài)效果的變化蜂莉,輔助功能選項還能改變對比度,反轉(zhuǎn)顏色堪唐,降低透明度以及更多巡语。為那些需要這些功能的用戶啟用設(shè)置并觀察你的應(yīng)用將會變成什么樣并且如何運(yùn)作翎蹈。
包含隱藏式字幕和口述影像
隱藏式字母幫助失聰以及重聽用戶明白視頻中的對話和其它音頻內(nèi)容淮菠。口述影像為視覺受損的用戶提供了關(guān)鍵視頻內(nèi)容的口頭解說荤堪。
了解更多信息合陵,請查閱iOS Accessibilty和Accessibility Programming Guide for iOS。
2.3 音頻(Audio)
無論聲音是你應(yīng)用體驗的要素或只是一個點(diǎn)綴澄阳,你都應(yīng)該知道用戶對聲音有什么要求并且滿足他們的期待拥知。
用戶通過音量鍵、靜音鍵碎赢、耳機(jī)聲控和屏幕上的音量調(diào)節(jié)滑塊控制聲音低剔。非常多的第三方配件也包含聲控功能。音頻可以通過內(nèi)部和外部的揚(yáng)聲器肮塞、耳機(jī)輸出襟齿,甚至通過支持AirPlay或是藍(lán)牙設(shè)備無線輸出。
靜音:用戶將他們的設(shè)備調(diào)節(jié)至靜音來避免被意外的聲音(比如電話鈴聲和短信提示聲)打擾枕赵。他們也想要關(guān)閉沒有意義的聲音猜欺,包括按鍵聲、音效拷窜、游戲配樂以及其它音頻反饋开皿。當(dāng)設(shè)備被設(shè)置成靜音涧黄,只能出現(xiàn)被明確被打開的聲音,比如媒體播放中的聲音赋荆、鬧鈴和音頻/視頻信息笋妥。
音量:無論是使用物理的設(shè)備按鍵或是屏幕上的滑塊,用戶都希望系統(tǒng)的所有音量都能夠被改變窄潭,包括音樂聲和應(yīng)用內(nèi)的音效挽鞠。但是鈴聲音量是唯一例外,它只能在沒有任何聲音播放的情況下被單獨(dú)調(diào)節(jié)狈孔。
耳機(jī):用戶使用耳機(jī)來私密地聽聲音并且能夠釋放他們的雙手信认。當(dāng)用戶插入耳機(jī)時,他們希望聲音能夠自動繼續(xù)播放而不被打斷均抽。當(dāng)拔掉耳機(jī)時嫁赏,他們希望播放能夠立即停止。
必要時自動調(diào)節(jié)不同層級的聲音油挥,但不是整體音量
為了達(dá)到更好的混合音效潦蝇,你的應(yīng)用可以單獨(dú)調(diào)節(jié)不同層級音頻間的相對音量。但是深寥,最終的音量輸出應(yīng)該由系統(tǒng)音量決定攘乒。
恰當(dāng)?shù)臅r候允許音頻重選路由(rerouting)
用戶會經(jīng)常想要選擇一個不同的音頻輸出設(shè)備。比如惋鹅,他們會想要通過客廳的立體音響则酝、車載收音機(jī)或是蘋果電視來聽音樂。請支持這個功能除非你有令人信服的理由不這么做闰集。
使用系統(tǒng)提供的音量視圖來調(diào)節(jié)音量
音量視圖(volume view)是最好的能提供調(diào)節(jié)音量的界面控件沽讹。這個視圖是自定義的,包含一個音量調(diào)節(jié)滑塊武鲁,甚至包含一個用來替音頻輸出重選路由的控件爽雄。了解實現(xiàn)方法,請參閱MPVolumeView Class Reference沐鼠。
短音和振動請使用系統(tǒng)聲音服務(wù)
了解實現(xiàn)方法挚瘟,請參閱System Sound Services Reference。
如果聲音對你的應(yīng)用十分重要請設(shè)置音頻類別
不同的音頻類別允許聲音被靜音按鈕靜音饲梭、與其它聲音混響乘盖、或是當(dāng)你的應(yīng)用在后臺時播放。根據(jù)類別的含義和當(dāng)前設(shè)備的音頻播放情況來選擇一個類別排拷,然后將其分配給你音頻對話(audio sessions)侧漓。比如,非必要情況下监氢,請不要打斷用戶正在收聽的來自其它應(yīng)用的音樂布蔗√傥ィ總的來說,盡量不要在你的應(yīng)用運(yùn)行時更改所屬的音頻類別纵揍,除非應(yīng)用需要經(jīng)常地錄制然后播放音頻顿乒。了解實現(xiàn)方法,請參閱Audio Session Programming Guide泽谨。
在適當(dāng)時候繼續(xù)播放被干擾打斷的音頻
正在播放的音頻有時會受來自其它應(yīng)用的聲音干擾璧榄。暫時性干擾(比如來電鈴聲)被認(rèn)為是可恢復(fù)的。永久性干擾(比如被Siri打開的播放列表)被視為不可恢復(fù)的吧雹。當(dāng)一個可恢復(fù)的干擾出現(xiàn)時骨杂,你的應(yīng)用應(yīng)該在干擾結(jié)束時恢復(fù)音頻播放(假設(shè)音頻在干擾出現(xiàn)之前就已經(jīng)開始播放了)。比如雄卷,一個在播放配樂的游戲和一個在播放音頻的媒體應(yīng)用都應(yīng)該恢復(fù)聲音的播放搓蚪。當(dāng)干擾發(fā)生時應(yīng)用沒有在播放任何音頻,那么它也就不需要恢復(fù)任何對象丁鹉。
讓其它應(yīng)用知道何時你的應(yīng)用將停止播放暫時性的音頻
如果你的應(yīng)用可能會暫時性地干擾到其它應(yīng)用的音頻妒潭,那么就應(yīng)該恰當(dāng)?shù)貥?biāo)明聲音片段,從而讓其它應(yīng)用知道確切的恢復(fù)時間揣钦。了解實現(xiàn)方法雳灾,請參閱AVFoundation Framework Reference中的AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation。
只有在有意義時才對聲音控件作出反應(yīng)
無論你的應(yīng)用在前臺還是后臺冯凹,用戶都能夠通過應(yīng)用界面以外的東西控制音頻的播放谎亩,比如在控制中心(Control Center)中,或者耳機(jī)聲控谈竿。如果你的應(yīng)用正在一個明確與聲音相關(guān)的環(huán)境下播放音頻团驱,或是連接到一個支持AirPlay的設(shè)備上,那么對聲音控件作出反應(yīng)是合理的空凸。但是,你的應(yīng)用不應(yīng)該混淆其它應(yīng)用的音頻寸痢,因為它們可能會在控件被激活時播放呀洲。
不要重新定義聲音控件
用戶希望聲音控制在任何應(yīng)用都保持一致性。永遠(yuǎn)不要重新定義聲音控件啼止。如果你的應(yīng)用不支持某些控件道逗,那么只需不對它們作出反應(yīng)即可。
2.4 身份驗證(Authentication)
要求用戶進(jìn)行身份驗證時應(yīng)該用有價值的東西交換献烦,比如個人化體驗滓窍、獲得更多功能、購買內(nèi)容或者同步數(shù)據(jù)巩那。如果你的應(yīng)用要求身份驗證吏夯,請保證登陸流程快速簡單并且低調(diào)此蜈,這樣就不會減少應(yīng)用的樂趣。
盡可能地延后登陸
用戶經(jīng)常遺棄應(yīng)用因為他們在做一些有用的事前被強(qiáng)制登陸噪生。在強(qiáng)制用戶前給他們一個愛上你的應(yīng)用的機(jī)會裆赵。在購物應(yīng)用內(nèi),允許用戶啟動應(yīng)用后能馬上瀏覽你的商品跺嗽,然后在他們決定購買時才要求登陸战授。在流媒體應(yīng)用內(nèi),允許用戶先探索和了解你能夠提供的內(nèi)容桨嫁,然后在他們播放時讓他們登陸植兰。
解釋身份認(rèn)證的優(yōu)勢以及如何注冊
如果你的應(yīng)用要求身份認(rèn)證,在登陸界面簡要友好地介紹之所以要登陸的原因及其優(yōu)勢璃吧。并且請牢記不是每個人在開始使用應(yīng)用時都擁有一個賬號钉跷。請確認(rèn)你解釋了如何得到賬號,或者提供一個簡單的應(yīng)用內(nèi)的注冊方式肚逸。
展示適合的鍵盤來減少數(shù)據(jù)輸入
比如爷辙,當(dāng)要求填寫一個郵箱地址時,請展示包含信息輸入所需快捷鍵的郵件鍵盤窗口朦促。
2.5 數(shù)據(jù)輸入(Data Entry)
無論是點(diǎn)擊界面元素還是使用鍵盤膝晾,信息輸入都是一個冗長的流程。當(dāng)一個應(yīng)用在做一些有用的事情前要求用戶一連串的輸入务冕,進(jìn)而拖慢了流程血当,那么用戶會很快感到失望,甚至?xí)氐椎貟仐夁@個應(yīng)用禀忆。
可能時展示選項
盡可能地提高信息輸入的效率臊旭。比如,考慮使用選擇器或是列表來替代輸入欄箩退,因為從一列提前設(shè)定好的選項中選擇一個比打字容易离熏。
可能時從系統(tǒng)中獲取信息
不要強(qiáng)迫用戶提供那些可以自動或是在用戶許可內(nèi)就能獲取的信息,比如聯(lián)系人或是日歷信息戴涝。
提供可靠的默認(rèn)值
盡可能地預(yù)填最可能的信息值滋戳。提供一個可靠的默認(rèn)值縮短了做決定的時間從而加快了流程。
只有在收集完必需信息之后才能進(jìn)行下一步
在允許“下一步”或“繼續(xù)”按鈕前啥刻,確保所有必要的輸入框都有信息奸鸯。盡可能地在用戶輸入之后就立馬檢查輸入值,這樣他們就能立即改正可帽。
只要求必要的信息
只有系統(tǒng)運(yùn)行真正必需的信息才使用必填欄娄涩。
簡化值列表的導(dǎo)航
尤其是在列表和選擇器中,必需能夠簡單地選擇值映跟⌒罴穑考慮通過將值列表按首字母排序或是其它邏輯排列扬虚,從而加快瀏覽和選擇的速度。
在輸入欄顯示提示以輔助說明
當(dāng)輸入欄沒有其它文字時弯蚜,可以包含占位符文字——比如“郵件”或“密碼”孔轴。當(dāng)占位符文字已經(jīng)足夠說明時不要再單獨(dú)使用標(biāo)簽來描述。
2.6 反饋(Feedback)
反饋讓用戶知道應(yīng)用現(xiàn)在在做什么碎捺,發(fā)現(xiàn)下一步他們應(yīng)該做什么路鹰,并且理解操作的結(jié)果。
悄悄地在你的界面中加入狀態(tài)或其它類型的反饋
理想中收厨,用戶能夠在不采取任何操作或是被打擾的情況下得到重要的信息晋柱。比如,當(dāng)用戶在郵件應(yīng)用中查看郵時诵叁,狀態(tài)信息被巧妙顯示在工具欄上雁竞。這個信息不會和屏幕上的主要內(nèi)容搶風(fēng)頭,但是用戶在任何時候快速一瞥就能查看拧额。
避免不必要的警告
警告是一種有威力的反饋機(jī)制碑诉,所以它應(yīng)該只被用于傳遞重要的并且最好是需要操作的信息。如果用戶看到太多包含無關(guān)緊要信息的警告框侥锦,他們很快就會學(xué)會忽略之后的警告进栽。了解更多幫助,請參閱Alerts恭垦。
2.7 文件處理(File Handling)
用戶在創(chuàng)建快毛、查看和操作文件時無需思考文件系統(tǒng)。如果你的應(yīng)用需要運(yùn)行文件時番挺,盡可能地淡化文件處理唠帝。
讓用戶相信除非主動取消或刪除
文件會隨時被保存⌒兀總而言之襟衰,不要讓用戶去即時保存文件。反之禁荸,在文件被打開右蒲、關(guān)閉,或是跳轉(zhuǎn)至其它應(yīng)用時赶熟,應(yīng)該自動定時地替用戶保存文件。但在某些情況陷嘴,比如正在編輯一個已被創(chuàng)建的文件時映砖,保存和取消的選項也是有意義的,因為它們幫助確認(rèn)何時編輯的內(nèi)容應(yīng)該被保存灾挨。
不要提供創(chuàng)建本地文件的選項
用戶總是希望他們?nèi)康奈募寄茉谌魏卧O(shè)備上讀取邑退。如果可能竹宋,你的應(yīng)用應(yīng)該支持文件云儲存,比如通過與iCloud類似的服務(wù)地技。
設(shè)計一個直觀并且圖像化的文件瀏覽界面
理想情況下蜈七,使用用戶熟悉的系統(tǒng)文檔選擇器來瀏覽文件。如果你想設(shè)計一個自定義的文件瀏覽器莫矗,請確保它是直觀且高效的飒硅。最好的文件瀏覽器應(yīng)該是高度圖像化的,提供了文檔的視覺再現(xiàn)作谚。要想加快導(dǎo)航速度三娩,減少手勢的使用,并且考慮提供一個添加新文件的按鈕妹懒,這樣用戶就無需再到其它地方去創(chuàng)建新文檔雀监。
讓用戶在你的應(yīng)用內(nèi)就能預(yù)覽文件
你可以使用Quick Look 功能讓用戶查看來自Keynote、Numbers和Pages的內(nèi)容眨唬,以及PDF文檔会前、圖片以及某些其它格式的文件,即使你的應(yīng)用并沒有真正打開它們匾竿。請參閱Quick Look瓦宜。
合適時,與其它應(yīng)用共享文件
如果有意義搂橙,你的應(yīng)用可以通過document provider extension與其它應(yīng)用共享文件歉提。你的應(yīng)用也可以讓用戶瀏覽和打開來自其它應(yīng)用的文件。了解實現(xiàn)方法区转,請查閱Document Picker Programming Guide苔巨。
2.8 啟動初體驗(First Launch Experience)
應(yīng)用的啟動時間是你接觸新用戶并與老用戶再次連接的第一個時機(jī)。請設(shè)計一個快速废离、有趣并有教育意義的啟動體驗侄泽。
提供啟動畫面
啟動畫面在應(yīng)用打開時出現(xiàn),在加載應(yīng)用初始內(nèi)容的同時蜻韭,讓人感覺你的應(yīng)用的響應(yīng)速度很快悼尾。因為這個畫面很快就會被應(yīng)用的首屏替代,所以它應(yīng)該盡量與首屏相似肖方,除非出現(xiàn)可定位的文字和可交互的元素闺魏。了解更多,請參閱Launch Screen俯画。
選擇合適的方向啟動
如果你的應(yīng)用同時支持豎屏和橫屏模式流译,那么應(yīng)該以設(shè)備目前的方向啟動趾盐。如果你的應(yīng)用只在一個方向運(yùn)行没陡,那它只能在相同方向啟動并在需要時允許用戶旋轉(zhuǎn)設(shè)備。除非有迫不得已的原因埋虹,否則處于橫屏模式的應(yīng)用正確地選擇方向,無論Home鍵是在左側(cè)還是右側(cè)娩怎。了解更多信息搔课,請參閱Layout。
快速使用截亦。避免出現(xiàn)延遲用戶使用應(yīng)用時間的啟動畫面爬泥、菜單和說明。反之魁巩,允許用戶快速進(jìn)入應(yīng)用內(nèi)急灭。如果你的應(yīng)用需要教學(xué)或是介紹步驟,為用戶提供一個跳過的選項并且不要對老用戶展示這些谷遂。
提前設(shè)想用戶可能會需要的幫助
經(jīng)常主動地考慮用戶何時會遇到麻煩葬馋。比如,一個游戲肾扰,能夠在暫统胨唬或是角色很難升級時提供一些訣竅。當(dāng)用戶錯過啟動畫面的內(nèi)容時集晚,允許他們之后重新觀看教程窗悯。
只在教程中展示最關(guān)鍵的內(nèi)容
雖然為新用戶提供引導(dǎo)沒錯,但是教學(xué)不能成為優(yōu)秀的應(yīng)用設(shè)計的代替品偷拔。更重要的是蒋院,確保你的應(yīng)用是直觀的。如果你的應(yīng)用需要過多的引導(dǎo)莲绰,那么請重新審視你的設(shè)計欺旧。
讓學(xué)習(xí)變得有趣而且易于學(xué)習(xí)
通過操作來學(xué)習(xí)比閱讀一長串說明來的更有趣和有效。 在上下文環(huán)境中蛤签,通過動畫和可交互性循序漸進(jìn)地教導(dǎo)辞友。避免展示看起來似乎可交互的屏幕截圖。
避免在最開始要求用戶設(shè)置信息
用戶期待應(yīng)用馬上工作震肮。為大多數(shù)人設(shè)計你的應(yīng)用称龙,然后讓余下少部分需要不同配置的人自己調(diào)整參數(shù)來滿足他們的需求。盡可能地戳晌,從設(shè)備設(shè)置和默認(rèn)中或許設(shè)置信息鲫尊,或者通過同步服務(wù),比如iCloud沦偎。如果應(yīng)用一定要求設(shè)置信息马昨,那么在最初在應(yīng)用內(nèi)提示用戶竞帽,然后允許用戶稍后在應(yīng)用設(shè)置中修改扛施。
避免展示應(yīng)用內(nèi)的接受許可協(xié)議和免責(zé)聲明
在你的應(yīng)用被下載之前直接在蘋果商店展示接受許可協(xié)議和免責(zé)聲明鸿捧。如果你必須將這些東西放在你的應(yīng)用里,那么以和諧融入它們疙渣,以避免干擾用戶體驗匙奴。
在你的應(yīng)用重新啟動時恢復(fù)之前的狀態(tài)
不要讓用戶重新操作來回到之前的應(yīng)用定位。保存并且復(fù)原應(yīng)用的狀態(tài)妄荔,這樣用戶就能從他們上次離開的位置繼續(xù)泼菌。
不要太快或是太頻繁地要求用戶對你的應(yīng)用評分
太快或是太頻繁地要求評分會讓用戶惱怒,并且減少最終收到的有用反饋的數(shù)量啦租。為了鼓勵考慮周到的反饋哗伯,在要求評分之前,給用戶足夠的時間直到他們形成對應(yīng)用的看法篷角『干玻總是提供跳出評分提示的選項,并且永遠(yuǎn)都不要強(qiáng)迫用戶對你的應(yīng)用評分恳蹲。
不要鼓勵重啟
重新啟動耗費(fèi)時間并且讓你的應(yīng)用看起來即不可靠又不可用虐块。如果你的應(yīng)用出現(xiàn)儲存或者其它問題,導(dǎo)致它無法運(yùn)行只能系統(tǒng)重啟嘉蕾,那么你應(yīng)該解決這些問題贺奠。
2.9 手勢(Gestures)
用戶通過在觸摸屏上使用手勢來與iOS設(shè)備交互。這些手勢表現(xiàn)了一種親密的人與內(nèi)容之間的聯(lián)系错忱,并且加強(qiáng)了對屏幕上對象直接的操作感儡率。用戶普遍地希望一下的標(biāo)準(zhǔn)手勢能夠在操作系統(tǒng)和每一個應(yīng)用內(nèi)保持一致。
點(diǎn)擊(Tap):激活一個控件或者選擇一個對象以清。
拖曳(Drag):讓一個元素從一邊移動到另一邊儿普,或者在屏幕內(nèi)拖動元素。
滑動(Flick):快速滾動或是平移
橫掃(Swipe):單指以返回上一頁玖媚,呼出分屏視圖控制器(split view controller)中的隱藏視圖箕肃,滑出列表行中的刪除按鈕,或在輕壓中呼出操作列表今魔。在iPad中四指操作用來在應(yīng)用間切換勺像。
雙擊(Double tap):放大并居中內(nèi)容或圖片,或者縮小已放大過的错森。
捏合(Pinch):向外張開時放大吟宦,向內(nèi)捏合時縮小。
長按(Touch and hold):在可編輯或者可選文本中操作涩维,顯示放大視圖用以光標(biāo)定位殃姓。在某些與集合視圖類似的視圖中操作袁波,進(jìn)入對象可編輯的狀態(tài)。
搖晃(Shake):撤銷或重做
一般使用標(biāo)準(zhǔn)手勢
用戶已熟悉了標(biāo)準(zhǔn)手勢蜗侈,并不喜歡在做相同事情時被強(qiáng)迫去學(xué)習(xí)不同的方式篷牌。在游戲等沉浸式體驗的應(yīng)用中,自定義的手勢能夠成為體驗的有趣要素踏幻。但是在其它應(yīng)用中枷颊,最好使用標(biāo)準(zhǔn)手勢,這樣用戶就無需花費(fèi)多余的力氣去學(xué)習(xí)和記憶它們该面。
不要禁止系統(tǒng)性的手勢
除了標(biāo)準(zhǔn)手勢夭苗,還有一些手勢會觸發(fā)系統(tǒng)性的操作,譬如呼出控制中心或是通知中心隔缀。在每個應(yīng)用中题造,用戶都依賴使用這些手勢。
避免使用標(biāo)準(zhǔn)手勢來執(zhí)行非標(biāo)準(zhǔn)的操作
除非你的應(yīng)用時一個極具可玩性的游戲猾瘸,否則重新定義標(biāo)準(zhǔn)手勢會變得混論和復(fù)雜界赔。
為基于界面的導(dǎo)航和操作提供補(bǔ)充性的快捷手勢,而不是取而代之
可能時须妻,提供簡單明顯的方式來導(dǎo)航或是執(zhí)行操作仔蝌,即使它可能意味著額外的點(diǎn)擊。非常多的系統(tǒng)應(yīng)用包含一個提供了清晰可點(diǎn)的返回上一頁的按鈕的導(dǎo)航欄荒吏。但是用戶也能通過在屏幕邊緣右滑來返回敛惊。在iPad,用戶能夠點(diǎn)擊Home鍵退出到主屏幕绰更,或是使用四指捏合的手勢瞧挤。
使用多指手勢來加強(qiáng)某些應(yīng)用的體驗
雖然涉及多個手指同時操作的手勢不適用于每一個應(yīng)用,但是他們能夠豐富一些應(yīng)用的體驗儡湾,譬如游戲和繪畫應(yīng)用特恬。比如,一個游戲可能包含多種屏幕上的控件徐钠,比如同時操作的的控制桿和發(fā)射鍵癌刽。
2.10 加載(Loading)
當(dāng)內(nèi)容在加載時,一片空白靜止的屏幕好像應(yīng)用被凍住了尝丐,讓人感到困惑和失望显拜,而且很可能讓用戶離開你的應(yīng)用。
明確加載的狀態(tài)
至少爹袁,展示一個活動旋轉(zhuǎn)器(activity spinner)來表明有任務(wù)在進(jìn)行中远荠。更勝一籌的是,顯示明確的進(jìn)度失息,這樣用戶就能知道他們還需等待多久譬淳。
通過教育或娛樂用戶來填充加載的時間
嘗試展示游戲訣竅档址、令人愉悅的視頻序列或者有趣的占位圖。
自定義加載畫面
盡管標(biāo)準(zhǔn)的活動指示器還不錯邻梆,但他們有時會感覺是脫離上下文環(huán)境的守伸。嘗試設(shè)計符合你的應(yīng)用或游戲的自定義動畫和元素,以實現(xiàn)一個更沉浸式的體驗确虱。
盡快顯示內(nèi)容
不要讓用戶在看到屏幕畫面前去等待內(nèi)容的加載含友。立馬顯示屏幕畫面,然后通過占位符校辩、圖片或者動畫明確告知用戶哪個范圍的內(nèi)容還未顯示。當(dāng)內(nèi)容加載成功之后再把占位元素替代掉辆童∫酥洌可能時,比如當(dāng)動畫在播放時或是用戶在某個層級或菜單導(dǎo)航時把鉴,在后臺預(yù)加載接下來要出現(xiàn)的內(nèi)容故黑。
了解更多指導(dǎo),請參閱Progress Indicators庭砍。
2.11 模態(tài)(Modality)
模態(tài)突出焦點(diǎn)场晶,因為用戶只有在完成當(dāng)前的任務(wù)或關(guān)閉一個信息或視圖之后才能去做其它事情。操作列表怠缸、警告框和活動視圖都提供了模態(tài)化的體驗诗轻。當(dāng)屏幕上出現(xiàn)一個模態(tài)視圖時,用戶必須采取一個決定(點(diǎn)擊按鈕或是其它)才能退出模態(tài)化體驗揭北。在日歷(Calendar)中編輯事件或是在Safari瀏覽器中選擇書簽都是模態(tài)視圖在應(yīng)用中被采用的例子扳炬。一個模態(tài)視圖可以占據(jù)整個屏幕、整個父視圖(比如浮出層)或者屏幕的一部分搔体。一個模態(tài)視圖一般都含有“完成”和“取消”按鈕來退出視圖恨樟。
△ 警告框
△ 模態(tài)視圖
減少模態(tài)的使用
一般來說,用戶更喜歡與應(yīng)用進(jìn)行非線性的交互疚俱。只在必須要引起用戶注意時劝术、某個任務(wù)必須被完成或是確認(rèn)關(guān)閉時,或保存重要數(shù)據(jù)時才考慮使用模態(tài)視圖呆奕。
提供一個明顯并可靠的退出模態(tài)任務(wù)的方式
確保用戶總是知道他們關(guān)閉一個模態(tài)視圖將導(dǎo)致的結(jié)果养晋。
保持模態(tài)任務(wù)簡單、簡短并且高度集中
不要在你的應(yīng)用中創(chuàng)建一另一個應(yīng)用登馒。如果一個模態(tài)任務(wù)太過復(fù)雜匙握,用戶在進(jìn)入模態(tài)視圖時就會看不到視他們本想執(zhí)行的任務(wù)。當(dāng)創(chuàng)建一個包含多層級視圖的模態(tài)任務(wù)時請格外謹(jǐn)慎陈轿,因為用戶可能會在多個視圖中迷失并不知道如何返回圈纺。如果一個模態(tài)任務(wù)必須含有次視圖秦忿,那么請?zhí)峁﹩渭壍奶D(zhuǎn)路徑以及清楚的完成路徑。除非完成任務(wù)否則不要使用標(biāo)有“完成”的按鈕蛾娶。
如果合適的話灯谣,請使用能夠明確說明任務(wù)的標(biāo)題
你也可能在視圖的其它部分提供詳細(xì)描述任務(wù)的文字或是提供指導(dǎo)。
只有在傳達(dá)關(guān)鍵以及需要操作的信息時才使用警告框
警告框干擾體驗蛔琅,并且需要單擊才能關(guān)閉胎许,所以必須要讓用戶認(rèn)為這個打斷是有理由的。了解更多罗售,請參閱Alerts辜窑。
尊重用戶的通知偏好設(shè)置
在設(shè)置里,用戶明確規(guī)定了他們想要如何地接受來自你應(yīng)用的通知寨躁。遵循這些個人偏好穆碎,這樣他們就不會想要完全地關(guān)閉來自你應(yīng)用的通知推送。
不要讓模態(tài)視圖蓋在在浮出層上
除了警告框职恳,任何元素都不應(yīng)該覆蓋在浮出層之上所禀。在極少數(shù)情況下,你需要讓模態(tài)視圖在用戶完成浮出層內(nèi)的任務(wù)之后彈出放钦,那么請先關(guān)閉浮出層再展示模態(tài)視圖色徘。
讓模態(tài)視圖的視覺風(fēng)格與你的應(yīng)用相符
一個模態(tài)視圖可能包含一個導(dǎo)航欄。在這種情況下操禀,請使用與你應(yīng)用內(nèi)的導(dǎo)航欄一樣的視覺風(fēng)格褂策。
選擇合適的模態(tài)視圖樣式
你可以使用到以下任何一種樣式:
為展示模態(tài)視圖選擇一個合適的過渡方式
使用與應(yīng)用風(fēng)格相符的過渡方式來加強(qiáng)用戶對當(dāng)前內(nèi)容轉(zhuǎn)變的認(rèn)知。默認(rèn)的過渡方式讓模態(tài)視圖垂直地從屏幕底部向上滑出床蜘,然后在被關(guān)閉時下滑辙培。彈出樣式的過渡是指當(dāng)前視圖水平滑出,顯示出模態(tài)視圖邢锯,看起來就好像模態(tài)視圖藏在當(dāng)前視圖的背后扬蕊。當(dāng)模態(tài)視圖被關(guān)閉時,原先的視圖便重新滑回來丹擎。在你的應(yīng)用內(nèi)容部使用統(tǒng)一的模態(tài)過渡方式尾抑。
了解更多模態(tài)視圖的實現(xiàn)方法,請參閱UIViewController Class Reference和UIPresentationController Class Reference蒂培。
2.12 導(dǎo)航(Navigation)
用戶往往意識不到一個應(yīng)用的導(dǎo)航再愈,除非它沒有達(dá)到他們的預(yù)期。你的工作就是實現(xiàn)一種能夠支持應(yīng)用結(jié)構(gòu)和目的的導(dǎo)航护戳,并且讓人們注意到到導(dǎo)航的存在翎冲。導(dǎo)航應(yīng)該讓人覺得自然和熟悉,并且不應(yīng)該主導(dǎo)界面或者搶走內(nèi)容的風(fēng)頭媳荒。在iOS抗悍,主要有三種導(dǎo)航結(jié)構(gòu)驹饺。
分層導(dǎo)航:
在每屏都做一次選擇,直到你到達(dá)目標(biāo)位置缴渊。要想到達(dá)另外的目標(biāo)位置赏壹,你必須原路返回一些層級或是從頭開始重新選擇。原生應(yīng)用設(shè)置(Settings)和郵件(Mail)就是采用這種導(dǎo)航結(jié)構(gòu)衔沼。
扁平導(dǎo)航:
在不同的內(nèi)容類別間切換蝌借。原生應(yīng)用音樂(Music)和App Store就是采用這種導(dǎo)航結(jié)構(gòu)。
內(nèi)容驅(qū)動或是體驗驅(qū)動式導(dǎo)航:
在內(nèi)容中自由地轉(zhuǎn)換指蚁,或是內(nèi)容定義導(dǎo)航菩佑。游戲、閱讀以及其它沉浸式應(yīng)用一般都采用這種導(dǎo)航結(jié)構(gòu)欣舵。
有的應(yīng)用結(jié)合了多種導(dǎo)航形式擎鸠。比如,采用了扁平導(dǎo)航的應(yīng)用也可能在每個類別之內(nèi)使用層級導(dǎo)航缘圈。
總是提供清晰的路徑
用戶應(yīng)該一直知道他在應(yīng)用的什么位置以及如何去往下一個目標(biāo)位置。除了要有清楚的導(dǎo)航形式袜蚕,還應(yīng)該確保對象間的路徑是合理的糟把、符合預(yù)期的并且容追溯的。一般來說牲剃,為用戶提供到達(dá)某一屏的唯一路徑遣疯。如果他們需要在非常多的情景下看到某一屏幕的內(nèi)容,那么考慮采用操作列表凿傅、警告框缠犀、浮出層或是模態(tài)視圖的形式展示這些內(nèi)容。了解更多內(nèi)容聪舒,請參閱Action Sheets,Alerts,Popovers和Modality辨液。
設(shè)計一個能夠快速簡單地訪問內(nèi)容的信息結(jié)構(gòu)
合理地組織你的信息結(jié)構(gòu),保證它只用最少次數(shù)的點(diǎn)擊箱残、橫掃和屏幕間跳轉(zhuǎn)就能訪問相應(yīng)的內(nèi)容滔迈。
使用觸摸手勢來制造流暢感
讓用戶能輕松地在界面內(nèi)跳轉(zhuǎn),而感受不到阻力被辑。比如燎悍,你可以讓用戶在屏幕邊界右滑,而返回到上一屏盼理。
使用標(biāo)準(zhǔn)的導(dǎo)航組件
可能時谈山,使用標(biāo)準(zhǔn)的導(dǎo)航控件比如頁面控件、標(biāo)簽欄宏怔、分段控件奏路、表格視圖畴椰、集合視圖和拆分視圖。用戶已經(jīng)熟悉了這些控件思劳,他們很自然地就知道如何玩轉(zhuǎn)你的應(yīng)用迅矛。
使用****導(dǎo)航欄訪問分層內(nèi)容
導(dǎo)航欄內(nèi)的標(biāo)題欄能夠說明當(dāng)前的層級位置,使用返回按鈕能夠輕易地回到上一個位置潜叛。了解更多指導(dǎo)秽褒,請參閱Navigation Bars。
使用標(biāo)簽欄來展示內(nèi)容或功能相似的類別
標(biāo)簽欄讓用戶能夠快速簡單地在類別中切換自如威兜,而不受當(dāng)前位置的限制销斟。了解更多指導(dǎo),請參閱Tab Bars椒舵。
使用多頁面展示同類型的內(nèi)容時請使用頁面控件
頁面控件能夠清楚地表示總頁數(shù)蚂踊,以及當(dāng)前頁的位置。天氣(Weather)應(yīng)用就使用了頁面控件來表示不同地理位置的天氣頁面笔宿。了解更多指導(dǎo)犁钟,請參閱Page Controls。
TIP
分段控件和工具欄不具備導(dǎo)航功能泼橘。使用分段控件能夠組織信息放入不同的類別涝动。使用工具欄為當(dāng)前內(nèi)容提供交互控件。了解這些元素的更多信息炬灭,請參閱Segmented Controls和Toolbars醋粟。
2.13 請求許可(Requesting Permission)
用戶必須對應(yīng)用予以授權(quán),應(yīng)用才能獲取用戶的個人信息重归,比如當(dāng)前位置米愿、日歷、聯(lián)系人信息鼻吮、提醒事項以及照片育苟。雖然用戶在使用獲得這些信息的應(yīng)用時會感到方便,但是他們還是希望能夠控制自己的私人數(shù)據(jù)狈网。比如宙搬,用戶希望為他們的照片自動標(biāo)上當(dāng)前的地理位置,或是尋找附近的朋友拓哺,但是他們又同時希望能有關(guān)閉這些功能的選項勇垛。
只在應(yīng)用真的需要時才向用戶請求獲得個人數(shù)據(jù)
用戶會質(zhì)疑個人信息的請求是很自然的,尤其是他們發(fā)現(xiàn)當(dāng)前的請求沒有明顯的必要時士鸥。確保允許請求只在用戶真的在使用某些需要個人數(shù)據(jù)的功能時才出現(xiàn)闲孤。比如,一個應(yīng)用只有在激活一個位置跟蹤的功能時才請求獲得當(dāng)前的位置。
當(dāng)需求不明顯時向用戶解釋為什么你的應(yīng)用需要這些信息
你可以在系統(tǒng)提供的允許請求警告框上添加自定義的文本讼积。使用明確且有禮貌的文本肥照,這樣用戶就不會感到有壓力。使用簡短文本勤众,并且使用句子舆绎。沒有必要包含你的應(yīng)用名字。系統(tǒng)已經(jīng)替你在警告框上說明了應(yīng)用的名字们颜。
在應(yīng)用一啟動時就請求允許那些對運(yùn)行你的應(yīng)用至關(guān)重要的信息
如果用戶明確地知道你的應(yīng)用只有獲得這些個人信息才能運(yùn)行吕朵,那么他們就不會反感。
不必要時不要請求位置信息
在獲得位置信息之前窥突,檢查系統(tǒng)以查看位置服務(wù)是否已經(jīng)被打開努溃。使用這個知識,可以延遲提醒阻问,直到使用需要該信息的功能時才進(jìn)行提醒梧税,甚至可能完全避免提醒。
學(xué)習(xí)如何實現(xiàn)定位功能称近,請參閱Location and Maps Programming Guide第队。
2.14 設(shè)置(Settings)
有一部分的應(yīng)用可能需要一開始就讓用戶決定設(shè)置或布局選項,但是大部分應(yīng)用避免或是延遲這么做刨秆。成功的應(yīng)用能夠一開始就讓用戶很好地使用斥铺,并且同時提供了一個便捷的途徑去調(diào)整體驗。當(dāng)你的應(yīng)用被設(shè)計成滿足大部分用戶的需求坛善,你就可以減少他們對對設(shè)置的需要。
推斷你可以從系統(tǒng)中得到什么
如果你需要關(guān)于用戶邻眷、設(shè)備或是環(huán)境的信息眠屎,那么盡可能地向系統(tǒng)請求而不是直接詢問用戶。比如肆饶,如果你想要知道用戶的郵編來提供本地的選項時改衩,可以向用戶請求獲取他們的當(dāng)前位置。
在你的應(yīng)用中對配置選項的優(yōu)先排序深思熟慮
應(yīng)用的主屏是一個放置關(guān)鍵或是常用選項的絕佳位置驯镊。次屏則適合放置只偶爾才更改的選項葫督。
把不經(jīng)常更改的配置選項放到系統(tǒng)設(shè)置里
系統(tǒng)的設(shè)置(Settings)應(yīng)用是更改系統(tǒng)配置的核心地帶,但是用戶必須離開的應(yīng)用才能到達(dá)那里板惑。因此在你的應(yīng)用中直接調(diào)節(jié)設(shè)置更加方便橄镜。如果你的應(yīng)用必須提供很少改動的設(shè)置選項,請參閱Preferences and Settings Programming Guide中的Implementing an iOS Settings Bundle 部分冯乘。
適當(dāng)時提供去設(shè)置的快捷路徑
如果你的應(yīng)用包含引導(dǎo)用戶去設(shè)置的文本洽胶,比如“去設(shè)置>我的應(yīng)用>隱私>定位服務(wù)”,請?zhí)峁┮粋€能夠自動打開該界面的按鈕裆馒。了解如果實現(xiàn)這個行為姊氓,請參閱UIApplication Class Reference中的Settings Launch URL部分丐怯。
2.15 用辭(Terminology)
每一個在應(yīng)用中的文字都是與用戶對話的一部分。利用好這個對方讓用戶在你的應(yīng)用中感到自在舒適翔横。
使用熟悉易懂的單詞和短語
科技可以讓人感到害怕读跷。避免使用用戶可能不理解的或是技術(shù)術(shù)語。根據(jù)你對用戶的了解來決定哪些單詞和短語是合適的禾唁⌒Ю溃總的來說,能夠吸引每個人的應(yīng)用是不應(yīng)包含深奧的技術(shù)語言的蟀俊。這類語言比較適合針對高端或是技術(shù)用戶的應(yīng)用钦铺。
保持界面文本的清晰和簡潔
用戶能夠快速且輕易地理解短而直接的文本,他們不喜歡在完成任務(wù)時被強(qiáng)迫去閱讀很長的文本肢预。找到最重要的信息矛洞,簡潔地陳述它,然后突出地展示它烫映,這樣用戶就不需要為了知道他們在找什么或是下一步該做什么而閱讀太多信息沼本。
避免使用讓人聽起來很傲慢的語言
避免使用“我們”,“我們的”和“我的”(比如“我們的教程”和“我的鍛煉”)等字段锭沟。他們有時候被理解為無禮或是傲慢的抽兆。
盡量使用日常且友好的語氣
一個日常親近的風(fēng)格就類似你在和別人吃午飯時聊天的語氣。偶爾使用簡寫族淮,并使用“你”和“你的”來直接與用戶對話辫红。
請謹(jǐn)慎使用幽默
記得用戶可能會多次閱讀你界面上的文字,而那些第一次看起來很俏皮的文字可能在多看幾次之后會顯得惱人祝辣。同樣記住在一種文化中的幽默方式可能并不適用于其它文化贴妻。
使用相關(guān)且一致的語言和圖像
確保引導(dǎo)在當(dāng)前環(huán)境中總是合適的。如果某人在使用iPad蝙斜,那么久不要給他展示與iPhone相關(guān)的文字和圖片名惩。根據(jù)平臺選擇使用相符的語言。你在觸摸屏上點(diǎn)擊孕荠、滑動娩鹉、橫掃、捏合或者拖曳對象稚伍。你按壓物理按鈕弯予,或者按壓對3D觸摸作出反應(yīng)的對象。你旋轉(zhuǎn)和搖晃設(shè)備槐瑞。
提供精確的日期
使用今天熙涤、明天這類友好的詞語是合理的,但是如果你沒有詳細(xì)說明當(dāng)前的位置,那么這些詞語就會令人困惑或是顯得不夠精確祠挫。請考慮一個在午夜12點(diǎn)前發(fā)生的事件那槽。在某個時區(qū),這個事件可能發(fā)生在今天等舔。但是在另一個時區(qū)骚灸,同樣的事件可能在昨天就已經(jīng)發(fā)生了』胖玻總而言之甚牲,日期應(yīng)該體現(xiàn)出正在查看事件的用戶所在的時區(qū)。然而蝶柿,在某些情況下丈钙,比如一個跟蹤航班狀態(tài)的應(yīng)用內(nèi),明確地顯示起飛地區(qū)的日期和時區(qū)才更加清楚交汤。
恰當(dāng)?shù)刂赋隹山换サ脑?/strong>
用戶應(yīng)該瞥一眼就能知道這個元素是什么用的雏赦。當(dāng)給按鈕或是其它可交互元素標(biāo)記時,使用操作動詞芙扎,比如連接星岗、發(fā)送和添加。
2.16 撤銷和重做(Undo and Redo)
很多的應(yīng)用都允許用戶通過搖晃設(shè)備來撤銷或是重做某個操作戒洼,比如打字或是刪除俏橘。當(dāng)該撤銷和重做通過搖晃被觸發(fā)時,會出現(xiàn)一個提示框圈浇,詢問用戶是要撤銷(重做)操作還是什么都不執(zhí)行寥掐。
簡明扼要地描述將要被撤銷或是重做的操作
撤銷和重做的提示框標(biāo)題會自動地包含“撤銷”或是“重做”這樣的前綴(以及后面的空格)。你需要在前綴后面提供額外的一兩個詞語用來形容什么會被撤銷或是重做磷蜀。比如曹仗,你可以創(chuàng)建一個提示框標(biāo)題叫做“撤銷命名”或者“重做地址更改”。
如果你已經(jīng)把搖晃手勢用來撤銷和重做蠕搜,那么就不要把它用于其它操作
即使你能通過編程賦予搖晃手勢不同的意義,但同時你也冒著很大的風(fēng)險使用戶困惑收壕,并讓你的應(yīng)用變得不可預(yù)知妓灌。
節(jié)制地使用撤銷和重做按鈕
如果在應(yīng)用中為執(zhí)行相同任務(wù)提供多種途徑便會讓人困惑。如果你的應(yīng)用真的需要專門的撤銷和重做按鈕蜜宪,那么請使用系統(tǒng)提供的標(biāo)準(zhǔn)按鈕并且把它們放在一個符合預(yù)期的位置虫埂,比如導(dǎo)航欄。
只在當(dāng)前情境中執(zhí)行撤銷和重做操作
撤銷和重做必須對當(dāng)前的(而非之前的)情境有明確直接的影響圃验。
了解更多實現(xiàn)方法掉伏,請參閱Undo Architecture。