iPhone人機界面常見任務處理方法 (1)
iPhone人機界面常見任務處理方法是本文要介紹的內容,如果您具有使用桌面計算機或便攜式計算機應用程序的經驗,那么您會發現iPhone應用程序處理很多常見任務的方式與它們不同。本節從人機界面的角度描述了這些常見任務;關于代碼實現的技術細節,請參考iPhone應用程序編程指南。
啟動
iPhone應用程序應能夠迅速啟動,從而用戶可以立即開始使用它們。啟動時,iPhone應用程序應該:
指定適當的狀態欄樣式(關于可用樣式的信息請參考“狀態欄”一節)。
顯示一幅酷似應用程序初始屏幕的啟動圖像。這減少了用戶感知到的應用程序的啟動時間。要了解更多有關的信息,請參考“啟動圖像”。
避免顯示“關于”窗口,啟動畫面,也不要提供任何其他類型的妨礙用戶立即使用應用程序的體驗。
默認情況下,在屏幕上縱向啟動應用程序。如果您打算讓應用程序只能在屏幕橫向時使用,則無論設備當前的方向如何,都在屏幕上橫向啟動應用程序。如果必要的話,要允許用戶將設備旋轉為橫向。
僅橫向顯示的應用程序應該支持兩種“橫向”—不論“主頁”按鈕在屏幕右側還是左側,都能夠正常顯示應用程序。如果設備本身已經被橫向放置,則這種僅橫向顯示的應用程序就按照設備的方向啟動。否則,在默認情況下,僅橫向顯示的應用程序在啟動時,“主頁”按鈕只能在應用程序的右方。
將您的應用程序恢復到***一次運行時的狀態。
重要:不要在您的應用程序安裝完成后提示用戶重新引導或重新啟動他們的設備。如果您的應用程序存在內存使用或其他方面的問題,導致除非系統是剛剛啟動過的,否則您的應用程序難以運行,那么您需要解決這些問題。例如,您可以閱讀iPhone應用程序編程指南中的“高效地使用內存”一節,了解如何開發運轉良好的應用程序。
停止
當用戶打開另一個應用程序或使用設備自身功能(比如電話)時,iPhone應用程序必需終止。要特別注意的是,應用程序的終止不需要用戶點擊應用程序關閉按鈕或在菜單上選擇“退出”操作。iPhone應用程序應該:
隨時準備接收退出或終止通知。因此,要盡可能快并且在合理情況下經常保存用戶數據。
當應用程序終止時,盡可能詳細地保存它的當前狀態。例如,如果您的應用程序能夠顯示滾動的數據,則應該保存當前的滾動位置。
iPhone應用程序不應該直接通過代碼退出,因為這樣做會使用戶覺得應用程序崩潰了。但是,可能有些時候,外部環境會阻止您的應用程序正常運行。處理這種情況的***方法是讓屏幕顯示醒目的內容,在屏幕上描述該問題并向用戶提出解決問題的建議。這樣做會在以下兩方面對用戶有所幫助:
它提供了反饋信息,告訴用戶您的應用程序沒有出現錯誤,使用戶放心。
它能夠控制用戶行為,讓他們決定是采取一些糾正的行動來繼續使用您的應用程序,還是按下“主頁”按鈕來打開另一個應用程序。
如果在一些特定的環境中,您的應用程序只是部分功能無法正常工作,那么在用戶想要激活該功能時,您可以在屏幕上顯示信息或警告。雖然警告在設計上不具備太大的靈活性,但如果您可以保證以下幾點,它也可以成為一種很好的選擇:
非常簡潔地描述當前情況
提供一個執行糾正動作的按鈕
僅當用戶試圖訪問無法正常工作的功能時顯示警告
和所有的警告一樣,用戶越少看到它們,就說明它們越有效。關于創建警告的更多信息請參考“使用警告”。
管理設置或配置選項
iPhone應用程序可以向用戶提供設置功能,使用戶可以根據自己的喜好來設置應用程序行為或配置選項,從而改變應用程序的一些功能。可設置的應該是一些用戶設置一次后很少(如果有的話)改變的信息,比如帳戶名稱。用戶可以在內置的“設置”程序中查看特定應用程序的設置。配置選項是一些用戶可能想要經常改變的值,比如在列表中顯示的分類的類型;配置選項應該由應用程序本身提供。
您應該把設置和配置選項看作是互斥的。也就是說,您不應該在您的應用程序中同時提供設置和配置選項。
iPhone應用程序***不要求用戶指定任何設置。這樣用戶無需提供設置信息就可以立即使用這些應用程序。為了在您的應用程序中實現這一點,您可以采用以下這些設計決策:
使您的解決方案滿足80%用戶的需求。當您采用這樣的設計時,大多數用戶不需要提供設置信息,因為您的應用程序已經按照大部分用戶所預期的行為進行了設置。可以不考慮那些只有少數用戶需要的功能和大部分用戶僅需使用一次的功能。
從其他途徑獲取盡可能多的信息。如果您可以用到任何用戶在內置應用程序或設備設置中提供的信息,那么您可以向操作系統查詢這些信息的值;不要讓用戶再次輸入它們。
如果您必須向用戶請求設置信息,請在應用程序內部提示用戶輸入信息。然后立即將這一信息存儲在您的應用程序的設置中。這樣,用戶在開始使用您的應用程序之前,就不會被迫退出應用程序而先打開“設置”界面。如果用戶稍后需要更改這些信息,他們可以隨時在您的應用程序的設置中進行更改。
如果用戶想要打開“設置”程序,就必須首先退出您的應用程序,而您應該不鼓勵用戶采取這樣的行為。系統并沒有提供支持這一行為的圖標或控件,而且建議您也不要為此創建自定義的圖標或控件。如果您決定一定要在您的iPhone應用程序中提供設置,請參考iPhone應用程序編程指南中的“設置程序包”一節,了解如何在您的代碼中實現對這些功能的支持。
注意:應用程序特定的設置不應該包括用戶幫助的內容。
與設置不同,由于用戶會選擇從新資源或以不同布局來查看信息,因此配置選項很可能經常發生改變。對于這些選項所做的更改,您可以動態地作出響應,因為用戶不需要離開您的應用程序來訪問它們。
您可以在主用戶界面或屏幕的背面提供配置選項。具體使用哪一種技術更合理取決于該選項代表的是不是主要功能以及用戶對其進行更改的頻率。
例如,“日歷”程序允許用戶以日,星期和月為單位查看他們的時間表。這些選項本來可以在屏幕的背面提供給用戶,但是查看日歷的不同部分是程序的主要功能,并且用戶可能會頻繁改變所關注的焦點。
再舉一個例子,“天氣”程序的主要功能是顯示一個城市的當前天氣狀況和6天之內的天氣預報。雖然讓用戶能夠選擇是以攝氏還是華氏為單位顯示溫度也很重要,但是用戶不太可能經常改變這個選項,因此,將它放在主用戶界面中并不合理。在“天氣”屏幕的背面提供溫標選項,就顯得既方便又不突兀。
支持復制和粘貼
iPhone OS提供了編輯(或粘貼板)菜單,它支持在文本視圖,Web視圖和圖像視圖中的“剪切”,“復制”,“粘貼”,“選擇”和“全選”操作。一種向用戶顯示該菜單的方法是,首先用戶觸摸并按住設備屏幕直到出現放大的視圖(該視圖允許用戶將插入點或選擇點移動到正確的位置),然后放開。如果當前的上下文支持這種菜單,則當用戶抬起手指時它就會出現。菜單中的“選擇”操作可以選擇視圖中的單詞或應用程序定義的項。用戶可以通過拖動當前所選區域的把手來擴大他們選擇的內容。在內容被選中之后,菜單就會根據情況顯示“剪切”,“復制”或“粘貼”。
您可以調整編輯菜單的某些行為以適應您的應用程序。(要了解更多關于如何用編碼實現這些行為的信息,請參考iPhone應用程序編程指南中的“復制和粘貼操作”一節。)例如,您可以指定菜單中顯示的操作,您可以改變菜單出現的位置。但是,您不能控制菜單本身的顏色和形狀。
編輯菜單中可見的操作在當前上下文都是有意義的。例如,如果沒有任何內容被選中,菜單中不會包含“復制”或“剪切”操作,因為這些操作要作用于被選中的內容。同樣,如果有內容被選中,菜單則不包含“選擇”操作。如果您要在一個自定義視圖中支持編輯菜單,您應該確保菜單所顯示的操作適用于當前上下文。請注意,您不能在菜單中顯示自定義的操作。
UIKit會根據可用空間的大小,在插入點或被選中內容的上方或下方顯示編輯菜單,并放置菜單指針,以便用戶可以看到菜單操作是如何與當前內容相關聯的。您可以通過編程的方式,在菜單出現之前決定它的位置,因此,在必要的情況下,您可以防止應用程序的用戶界面中的重要部分被菜單遮住。
請注意,雖然“觸摸并按住”這個操作是向用戶顯示編輯菜單的主要方式,但是用戶也可以通過雙擊文本視圖中的一個單詞來選中它,同時顯示出菜單。如果您要在自定義視圖中支持菜單,那么您應該對這兩種操作都做出響應。此外,您可以定義在用戶雙擊時默認被選中的對象。
如果一個按鈕執行的是編輯菜單中已有的操作,則要避免創建這樣的按鈕。例如,要讓用戶執行復制操作的話,使用編輯菜單比向用戶提供“復制”按鈕更好,因為用戶會很困惑,為什么在您的應用程序中要有兩種方式來完成同樣的事情。
您可以啟用對靜態文本的選擇,但是應該僅當靜態文本顯示對用戶有用的內容時才這樣做。例如,用戶有可能想要復制一幅圖像的標題,但是他們可能不想復制一個標簽項或屏幕標題的標簽,比如“帳戶”。在文本視圖中,默認應該是按單詞選取的。
按鈕的標題應該是不可以被選中的,因為很難不觸發按鈕的點擊事件并顯示出編輯菜單。一般來說,具有按鈕行為的元素不需要被選中。
如果您在自己的應用程序中支持“剪切”,“復制”和“粘貼”操作,您也應該支持撤銷和重做(在“支持撤銷和重做”介紹)。這是因為編輯菜單不需要在動作執行前進行確認,而且如果用戶改變了主意,他們總是希望能夠撤銷最近的操作。
支持撤銷和重做
iPhone OS在文本視圖中為用戶提供了撤銷和重做的能力。用戶通過搖晃設備發起撤銷動作,設備會顯示一個警告,允許用戶撤銷他們剛才的輸入,重做先前未完成的輸入或取消撤銷操作。
UIKit允許您在自己的應用程序中以一種更通用的方式支持撤銷(有關如何在代碼中實現這一行為的信息,請參考撤銷架構)。您可以指定:
用戶可以撤銷和重做的操作
您的應用程序應該何時將一個搖晃事件理解為觸發撤銷
支持多少層的撤銷
為了給您的應用程序中的撤銷和重做功能提供出色的用戶體驗,您應該:
提供簡短的描述性的語言精確地向用戶描述他們正在撤銷或重做的內容。UIKit自動采用字符串“撤銷”和“重做”作為撤銷警告按鈕的標題,但是您需要提供一至兩個單詞來描述用戶可以撤銷和重做的動作。(請注意,“取消”按鈕不能被改變。)例如,您可以提供文本“刪除姓名”或“地址變更”來創建如“撤銷刪除姓名”或“重做地址變更”這樣的的按鈕標題。
一定要避免提供過長的文本:過長的按鈕標題會被截斷,并且用戶很難解讀。此外,由于文本位于按鈕的標題中,因此要使用標題式的大寫方式,而且不要添加標點。(簡單地說,標題式的大寫方式是指每個單詞都大寫,但冠詞,并列連詞和四個或四個字母以下的介詞除外。)
避免重載搖晃操作。即使您可以通過編程來制定您的應用程序何時將一個搖晃事件理解為觸發撤銷,但是如果搖晃可以用來執行另一個動作,用戶會感到迷惑。
搖晃操作是用戶期望的發起撤銷和重做的主要方式,但是在適當情況下,您也可以在導航欄中包含系統提供的“撤銷”和“重做”按鈕。如果在您的應用程序環境中,明確地顯示一個專用按鈕來執行這些功能非常重要,則您可以采取這種做法,但這種情況很不常見。
考慮您允許撤銷和重做的動作所處的環境。一般來說,用戶希望他們所做的更改和執行的動作能夠立即生效。撤銷和重做功能應該盡可能明確地關聯到用戶當前所處的環境,而非先前的環境。
小結:iPhone人機界面常見任務處理方法 (1)的內容介紹完了,希望本文對你有所幫助!請深入了解以下幾篇文章: