iPhone人機界面常見任務(wù)處理方法之事件處理 (2)
iPhone人機界面常見任務(wù)處理方法是本文要介紹的內(nèi)容,如果您具有使用桌面計算機或便攜式計算機應(yīng)用程序的經(jīng)驗,那么您會發(fā)現(xiàn)iPhone應(yīng)用程序處理很多常見任務(wù)的方式與它們不同。
本節(jié)從人機界面的角度描述了這些常見任務(wù);關(guān)于代碼實現(xiàn)的技術(shù)細(xì)節(jié),請參考iPhone應(yīng)用程序編程指南。繼續(xù)上一節(jié) iPhone人機界面常見任務(wù)處理方法 (1)的內(nèi)容開始介紹。
啟用推送通知
當(dāng)您的應(yīng)用程序注冊了“蘋果推送通知服務(wù)”時,您可以在有新數(shù)據(jù)到來時向用戶發(fā)出警告,即使您的應(yīng)用程序沒有運行。當(dāng)設(shè)備收到的消息是發(fā)給一個沒有運行的應(yīng)用程序時,它可以通過以下方式通知用戶:
在應(yīng)用程序的主屏幕圖標(biāo)上更新一個 標(biāo)記
播放警告聲音
顯示一條警告消息
或者您可以組合使用以上方式。用戶的反應(yīng)可能是啟動應(yīng)用程序來處理新數(shù)據(jù),或者僅僅是注意到有新數(shù)據(jù)到來就可以了。(要了解如何在代碼中處理推送通知,請閱讀蘋果推送通知服務(wù)編程指南。)
注意:推送通知的投遞是無保證的。此外,用戶也可以拒絕接收系統(tǒng)范圍內(nèi)的通知。推送通知的目的是提醒用戶有新數(shù)據(jù)到達,而不是向您的應(yīng)用程序傳遞關(guān)鍵的數(shù)據(jù)。
內(nèi)置的設(shè)置程序中的“通知”部分為每一個注冊了“蘋果推送通知服務(wù)”的應(yīng)用程序提供推送通知的設(shè)置。針對每一個應(yīng)用程序,iPhone OS都可以讓向用戶設(shè)置是否允許標(biāo)記,聲音和警告消息。
您應(yīng)該花一些時間來思考哪種類型的事件更能讓通知引起用戶的注意。通知應(yīng)該向用戶提供有用的,可操作的信息,這些信息是用戶即使在沒有使用您的應(yīng)用程序時也想要得到的。
當(dāng)您確定了用戶可能關(guān)心的事件之后,您還應(yīng)該讓用戶決定每種事件應(yīng)該產(chǎn)生什么類型的通知(如果有通知的話)。如果用戶無法定制您的應(yīng)用程序的推送通知,那么用戶可能會被他們不感興趣的通知所打擾 。
用戶可以選擇他們想要接收的通知的類型,因此以下三種類型您應(yīng)該全部支持:
標(biāo)記。 標(biāo)記是一種對用戶打擾最小的方式,它告訴用戶有新的他們可能感興趣的內(nèi)容出現(xiàn)。標(biāo)記是一個紅色的小橢圓形,出現(xiàn)在主屏幕圖標(biāo)的右上角。您對于標(biāo)記的外觀沒有任何控制權(quán),它僅包含數(shù)字,不包含字母和標(biāo)點符號。
標(biāo)記適用于告訴用戶有多少項有待他們查閱。例如,標(biāo)記中的數(shù)字表示的可能是未讀的消息數(shù),新分配的任務(wù)數(shù),或當(dāng)前有多少個遠(yuǎn)程玩家正在進行游戲。
聲音。 您可以提供自定義的警告聲音,也可以使用內(nèi)置的警告聲音。如果您創(chuàng)建了自定義的聲音,一定要保證它簡短,獨特并且制作專業(yè)。(要了解有關(guān)自定義聲音的技術(shù)要求,請參考蘋果推送通知服務(wù)編程指南中的“準(zhǔn)備自定義警告聲音”一節(jié)。)請注意,當(dāng)有通知被投遞時,您不能強制使設(shè)備振動;用戶能夠控制收到警告時是否伴有振動。
如果通知到達本身就為用戶提供了足以采取行動的信息,在這種情勢下,采用一種容易辨識的聲音是非常適合的。例如,一個協(xié)同任務(wù)管理系統(tǒng)在成員的任務(wù)完成時可能會伴隨著一段獨特的聲音。僅僅是聽到這種聲音,用戶就知道任務(wù)已經(jīng)完成了。
警告。 警告是一種通知用戶有新內(nèi)容時最打擾用戶的一種方式。在警告的頂端顯示您的應(yīng)用程序的名稱,在它下面是您發(fā)送的消息,在警告底部有一至兩個按鈕。如果您指定了兩個按鈕,則警告會在左側(cè)顯示“關(guān)閉”按鈕,右側(cè)顯示“查看”按鈕(用戶點擊“查看”按鈕可以在解除警告的同時啟動您的應(yīng)用程序)。如果您只指定了一個按鈕,則警告只顯示一個“確定”按鈕。“關(guān)閉”按鈕和“確定”按鈕都會關(guān)閉警告而不會打開您的應(yīng)用程序。
警告會打斷用戶的工作流程,因此最好謹(jǐn)慎地使用它,并且只用它來投遞有關(guān)某事件的簡短的,重要的消息。特別地,一定要避免在您的警告消息中包含任何廣告內(nèi)容。
保證應(yīng)用程序的可用性
一個易于使用的應(yīng)用程序應(yīng)該允許有障礙的用戶在輔助程序或設(shè)備的幫助下可以成功使用。iPhone OS設(shè)備包含許多功能,使所有用戶都可以更加方便地使用該設(shè)備,比如可視化語音郵件,縮放以及語音控制功能。您無需在應(yīng)用程序中采取任何動作,用戶可以直接獲益于這些功能。
有了VoiceOver,事情就變得不一樣了。VoiceOver是蘋果公司一項創(chuàng)新性的屏幕閱讀技術(shù),它讓用戶無需看到屏幕,就可以控制他們的設(shè)備。為了確保VoiceOver用戶可以充分地使用您的應(yīng)用程序,您可能需要提供一些關(guān)于用戶界面中視圖和控件的自定義信息。
幸運的是,在默認(rèn)情況下,UIKit控件和視圖是易于訪問的,因此,當(dāng)您以完全標(biāo)準(zhǔn)的方式使用這些標(biāo)準(zhǔn)元素時,您只有很少的額外工作要做(如果有的話)。用戶界面的自定義程度越高,您需要提供的自定義信息就越多,以便VoiceOver可以正確地向具有視覺障礙的用戶描述您的應(yīng)用程序。
重要:為了使您的應(yīng)用程序易于訪問,您要做的工作包括為VoiceOver提供它所需的信息來幫助用戶使用您的應(yīng)用程序。您不需要為了適應(yīng)VoiceOver而改變用戶界面的視覺設(shè)計。
讓您的iPhone應(yīng)用程序易于被VoiceOver用戶訪問是非常正確的做法。這種做法還可以增加您的用戶群,并有可能幫助您滿足由各主管機構(gòu)創(chuàng)建的可用性準(zhǔn)則。
提供搜索功能并顯示搜索結(jié)果
UIKit提供了搜索欄控件,您可以使用它顯示一致的啟動搜索的界面,但要您需要在您的應(yīng)用程序中實現(xiàn)搜索功能。(要了解有關(guān)搜索欄的更多信息,請參考“搜索欄”;要了解有關(guān)在代碼中處理搜索結(jié)果的更多信息,請參考UISearchDisplayController類參考。)為了確保搜索擁有實用而方便的用戶體驗,請花一些時間考慮如何實現(xiàn)搜索過程以及如何顯示其結(jié)果。
一般來說,您應(yīng)該:
為您的數(shù)據(jù)建立索引,以便隨時進行搜索。
實時過濾本地的數(shù)據(jù),一旦用戶開始輸入,您就顯示結(jié)果,并且隨著用戶繼續(xù)輸入而逐步縮小結(jié)果范圍。
如果可能的話,在用戶輸入時也同時過濾遠(yuǎn)程數(shù)據(jù),但是,如果這部分的響應(yīng)時間有可能將搜索結(jié)果的計算推遲1-2秒鐘以上,一定要經(jīng)過用戶的允許。
在列表上面顯示搜索欄或者在列表內(nèi)顯示索引。
避免為搜索打開一個標(biāo)簽頁,除非它是您應(yīng)用程序中的主要功能,應(yīng)該被標(biāo)識為一個不同的模式。
雖然實時過濾數(shù)據(jù)通常能夠產(chǎn)生出色的用戶體驗,但這并不總是可行的。如果無法實時過濾數(shù)據(jù),您可以在用戶在鍵盤上點擊“搜索”按鈕之后再開始搜索過程。如果您要這樣做,一定要提供有關(guān)搜索進度的反饋信息,以便讓用戶知道搜索進程沒有停止。一種方法就是盡快顯示文本結(jié)果,并為那些可能需要更長時間檢索的數(shù)據(jù)顯示占位符內(nèi)容。
例如,在YouTube中,用戶點擊“搜索”按鈕發(fā)起視頻的搜索。如果網(wǎng)絡(luò)連接速度很慢,YouTube會先顯示“載入中……”消息和旋轉(zhuǎn)的活動指示符,讓用戶知道搜索正在進行。然后,YouTube會顯示一個結(jié)果列表,其中,每一行填寫搜索的文本結(jié)果(比如視頻的標(biāo)題和收視率),以及帶有虛線輪廓的立方體自定義圖像。隨著用戶瀏覽視頻標(biāo)題的列表,下載完的視頻縮略圖會逐步替換掉原來的虛線立方體。像這樣,在更多的數(shù)據(jù)仍在下載時向用戶顯示部分搜索結(jié)果,能夠及時地為用戶提供有用的信息。
如果您處理的數(shù)據(jù)可以歸類于多個不同的類別,您可以提供一個范圍欄。范圍欄包含至多4個范圍按鈕,每個按鈕代表一種分類。例如,“郵件”程序提供了一個范圍欄,允許用戶將他們的搜索集中在郵件的發(fā)件人,收件人或主題字段,或者將搜索范圍擴大至包含所有的字段。如果范圍欄能夠幫助用戶集中他們的搜索,或者能夠大大減小搜索結(jié)果的數(shù)量,請您考慮使用范圍欄控件。(要了解如何在您的代碼中實現(xiàn)范圍欄,請參考UISearchBar類參考。)
使用用戶的位置信息
用戶喜歡能夠自動使用他們的物理位置對內(nèi)容進行標(biāo)記的功能,或者查找當(dāng)前在附近的朋友。用戶同時也希望當(dāng)他們不想與他人分享自己的位置時能夠禁用這些功能。用戶可以通過“設(shè)置” > “一般”中的“位置服務(wù)”設(shè)置來選擇同意(或拒絕)系統(tǒng)范圍內(nèi)對他們的物理位置的訪問。
如果用戶關(guān)閉了位置服務(wù),而隨后使用的應(yīng)用程序功能需要獲知他們的位置,則用戶會看到一個警告,此警告告訴他們必須改變他們的首選項設(shè)置才能使用此功能。該警告不允許用戶在應(yīng)用程序的內(nèi)部做此更改;相反,他們必須進入設(shè)置應(yīng)用程序改變他們的首選項設(shè)置。這樣可以確保用戶充分意識到他們正在授予整個系統(tǒng)使用他們位置信息的權(quán)限。
為了讓用戶知道他們?yōu)槭裁匆蜷_位置服務(wù),您最好只在用戶試圖使用一項顯然需要獲知他們當(dāng)前位置的功能時,才顯示警告。例如,當(dāng)位置服務(wù)關(guān)閉時,用戶仍然可以使用地圖應(yīng)用程序,但是,當(dāng)他們訪問發(fā)現(xiàn)并跟蹤其當(dāng)前位置的功能時,會看到警告。
如果位置服務(wù)處于關(guān)閉狀態(tài),iPhone OS會在您的應(yīng)用程序第一次試圖訪問位置信息時顯示警告。Core Location框架為您提供了一種獲取用戶偏好設(shè)置的方法,使您避免不必要或不適當(dāng)?shù)赜|發(fā)警告。(要了解關(guān)于這個編程接口的更多信息,請參考Core Location框架參考。)
知道了用戶的偏好設(shè)置信息,您就可以盡可能準(zhǔn)確地為需要位置信息的功能觸發(fā)警告,或是完全地消除警告。
如果您的應(yīng)用程序在沒有這些信息的情況下無法執(zhí)行它的主要功能,您最好在用戶啟動應(yīng)用程序時盡快讓他們看到警告。用戶不會為此感到困擾,因為他們明白應(yīng)用程序的主要功能依賴于知曉他們的位置。
如果用戶的位置不是您應(yīng)用程序基本功能的一部分,您可以選擇簡單地限制那些用到位置信息的功能。例如,當(dāng)位置服務(wù)關(guān)閉時,相機應(yīng)用程序會自動關(guān)閉將用戶的位置添加到他們所拍攝的照片的功能。但應(yīng)用程序并不會阻止用戶拍照,除非他們改變偏好設(shè)置的選項,這是因為“將位置信息添加到照片”只是一個附加功能,而不是基本功能。
如果某項功能需要位置信息才能工作,一定要避免在用戶實際選擇該功能之前執(zhí)行任何編程調(diào)用觸發(fā)警告。(獲取用戶偏好設(shè)置信息的調(diào)用不會觸發(fā)警告。)這樣,您就可以避免讓用戶感到奇怪,為什么您的應(yīng)用程序在用戶做一些看似不需要位置信息的事情時,想要得到他們的位置信息。
處理方向的變化
用戶可以隨時旋轉(zhuǎn)iPhone OS設(shè)備,并且他們期望正在瀏覽的內(nèi)容做出適當(dāng)?shù)恼{(diào)整。在您的iPhone應(yīng)用程序中,請務(wù)必:
注意加速度表的值(關(guān)于加速度表和加速度表編程接口參考的更多信息,請閱讀iPhone應(yīng)用程序編程指南)。如果合適的話,您的應(yīng)用程序應(yīng)該對所有的設(shè)備方向變化做出響應(yīng)。
如果您的應(yīng)用程序用戶界面的某一部分只在一個方向上顯示內(nèi)容,則該區(qū)域只適于在此方向上出現(xiàn),而且不需要對設(shè)備方向的變化做出響應(yīng)。例如,當(dāng)用戶選擇一個iPod視頻來觀看時,無論當(dāng)前設(shè)備方向如何,該視頻都橫向顯示。這向用戶表明,要旋轉(zhuǎn)設(shè)備以便更好地觀看該視頻。該例中最重要的一點是,iPod沒有提供“旋轉(zhuǎn)”按鈕;相反,用戶知道要旋轉(zhuǎn)設(shè)備,因為視頻是橫向顯示的。
讓用戶旋轉(zhuǎn)設(shè)備來正確地瀏覽應(yīng)用程序用戶界面中需要特定方向的部分。避免創(chuàng)建新的控件或定義新的操作,告訴用戶旋轉(zhuǎn)設(shè)備。
利用一步操作就能改變方向的過程,完成更順暢且往往更快的旋轉(zhuǎn)。但是,如果您的屏幕布局非常復(fù)雜,當(dāng)發(fā)生方向變化時,您可以選擇執(zhí)行一種淡入淡出的轉(zhuǎn)換。要了解如何在您的代碼中支持一步操作過程,請參考UIViewController類參考。
用戶經(jīng)常因為想要“看到更多”而將他們的設(shè)備旋轉(zhuǎn)為橫向。如果您只是按比例放大屏幕的內(nèi)容,則無法滿足用戶的期望。相反,您應(yīng)該重新打包文本行,而且如果必要的話,重新安排用戶界面的布局,以便更多的內(nèi)容填充到屏幕當(dāng)中。
小結(jié):iPhone人機界面常見任務(wù)處理方法 (2)的內(nèi)容介紹完了,希望本文對你有所幫助!深入了解這iphone應(yīng)用程序,請參考下面幾篇文章。