來人人都是産品經理【起點學院】,BAT實戰派産品總監手把手系統帶你學産品、學運營。
文章索引
譯者注:本文譯自蘋果官方人機界面指南 iOS Human Interface Guidelines (2015年10 月21日),由騰訊ISUX設計師翻譯整理,非發文者一人之作。譯文首發于ISUX博客,如在閱讀過程中發現錯誤與疏漏之處,歡迎不吝指出。後續章節會陸續更新,敬請期待。
通知為人們提供即時的重要信息和功能。人們能在多種情況下收到通知,例如在鎖屏界面中,或者在使用應用時,或者訪問通知中心時。 通知中心有兩種視圖:通知(Notifications )和今天(Today)。
今天視圖顯示了一組可編輯的部件。今天部件是一個應用擴展,顯示了少量及時和重要的信息或功能,這些信息或功能則是由用戶所關注的應用所提供。舉例來說,日曆部件隻顯示了今天的事件。點擊日曆部件中的一個事件可以喚起日曆應用,并打開該事件,用戶接下來可以編輯該事件或管理其他的事件。想要了解更多關于設計今天部件的内容,請參見今天部件。
通知視圖會顯示用戶感興趣的應用所發出的最近通知。用戶可以在設置(Settings)中來設置是否在通知中心顯示該應用的通知。 iOS應用可以使用通知來讓人們知道一些有趣的事情是什麼時候發生的,例如:
在iOS8及之後的版本中,應用可以定義用戶在通知中的操作。例如,用戶可以在待辦事項應用的通知中就标記該事項已完成,而無需額外打開應用。 iOS定義了兩種類型的通知。
注意:應用擴展可能會要求遠程通知必須發送到它的容器應用。在這種場景下,容器應用常常會在後台運行來處理通知。想要了解更多關于應用擴展的内容,請參見應用擴展。
如果當你的應用正在後台運行時收到了本地或遠程的通知,你就應該以你的應用所特有的方式将信息傳達給你的用戶。 為了确保用戶能夠自定義他們的通知體驗,你應該盡可能多地支持以下的通知類型:
注意:在iOS8及之後的版本中,你必須對所有你想發送給用戶的通知類型進行注冊。當你第一次進行注冊動作時,用戶會遇到一個警告框,他們可以在其中操作來決定允許或拒絕所有來自你的應用的通知。不管用戶選擇的結果是什麼,他們應始終能訪問應用的設置來更改此項設置,或者設置他們想要接收的通知類型。
橫幅(banner)是一個小而透明的視圖,會出現在屏幕頂部并在幾秒後消失。用戶還可以看到在鎖屏當中的橫幅以及在通知中心中以通知形式出現的橫幅。在橫幅中,iOS會顯示通知的内容和應用的小圖标(欲了解更多關于小圖标的内容,請參見 App Icon)。用戶點擊橫幅來隐藏顯示并切換到發送通知的應用。
除了默認的點擊動作之外,當用戶輕掃橫幅時,你還可以定義兩個動作按鈕。點擊通知動作按鈕來隐藏橫幅的顯示并啟動你的應用(可能是在後台)來執行動作。
通知警告框是顯示在屏幕上的标準警告框視圖,需要用戶操作後才會隐藏。當用戶點擊Options按鈕後,你需要提供并顯示通知消息以及任何一個默認動作,或最多四個特定動作。警告框的背景樣式不能做修改。 當用戶點擊警告框中的一個默認或自定義動作按鈕時,iOS會同時隐藏警告框并運行你的應用(可能是在後台)。點擊關閉或确定按鈕會隐藏警告框而不打開應用。
小氣泡(badge)是一個顯示未讀通知數量的紅色小圓(小氣泡顯示在應用圖标的右上角)。小氣泡的大小和顔色不能做修改。 橫幅、警告框和小氣泡這三種通知都可以使用自定義或系統提供的聲音。
在通知中謹慎使用具破壞性的動作。要确定用戶有足夠的上下文來避免意想不到的後果。為了幫助用戶區分你所定義的破壞性動作,iOS會用紅色來顯示它。有時候,在應用執行破壞性動作之前,應該請求用戶進行确認。舉個例子,如果在鎖屏的橫幅(banner)中提供了一個破壞性動作,那麼就應确保隻有設備的主人才能執行該動作(你需要在代碼上實現這一需求)。
為每個動作按鈕提供自定義标題。創建一個簡短的标題來描述清楚将要發生的動作。例如,遊戲可能會使用“Play”作為标題來表明,點擊這個按鈕會打開應用來進行遊戲。确保标題:
不要為同一個事件重複發送通知。用戶可以選擇處理通知項;通知項在用戶未處理前會一直顯示。如果為同一事件重複發送通知,通知中心列表中會滿是通知,用戶就有可能會關閉你的應用的通知。
不要在通知消息中包含你的應用名稱。自定義信息會在警告框和橫幅中顯示,也會在通知中心中以通知的形式顯示。你無需在自定義信息中顯示你的應用名稱,因為iOS會在顯示信息的同時自動顯示應用名稱。 為了使本地或遠程通知信息更有作用,你應該:
注意:如有必要,iOS會縮短你的消息以便能在各種通知發送樣式下顯示;為了最好的效果,你不應主動縮減你的消息。
保持小氣泡的内容是最新的。當用戶注意到新信息時,即時更新小氣泡非常重要,這樣用戶就不會覺得收到了額外的通知。注意,當小氣泡為0時也會移除通知中心中所有對應的通知項。
重要:不要使用小氣泡做通知以外的用途。記住,用戶能夠關閉應用的小氣泡,所以你無法确定他們一定能看到小氣泡中的内容。
當收到通知時,提供用戶可以選擇聽到的音效。當人們沒有在看屏幕的時候,可以通過音效獲取他們的注意。例如,日曆應用可能會在顯示警告框的同時播放一個音效來提醒人們一個即将到來的事件。再如,協作任務管理應用可能會在小氣泡更新時播放一個音效來告知某個遠程協同的同事已經完成了某個任務。
你可以提供自定義的音效,或者使用内置的警告音。如果你創建了自定義音效,請确保它是簡短的、有特色的并且是經由專業制作的。(想要了解更多關于音效的技術需求,請參閱Local and Remote Notification Programming Guide中的Preparing Custom Alert Sounds。)注意,當通知發送後,你無法以編程方式來觸發設備的震動,因為用戶對于警告框是否伴随震動擁有支配權。
人們會期望在任何場景下都可以使用他們喜愛的社交媒體帳号。iOS以人們喜歡的方式将社交媒體的交互與你的應用進行了整合。
注意:當用戶點擊動作按鈕時,他們會得到一個如上圖的動作視圖控制器。想要了解更多關于這個視圖控制器的内容,請參見Activity View Controller。
動作視圖控制器的中間一行顯示了用戶啟用的和系統提供的分享應用擴展。想要了解更多關于設計分享擴展的内容,請參見 Share and Action Extensions。
考慮在你的應用中為用戶提供一種簡便的方式來撰寫郵件。用戶有可能會啟用分享擴展以便能在任何地方都可以發送内容。但是你也可以使用系統提供的撰寫視圖控制器來呈現給用戶,他們可以在其中進行編輯操作。你可以在顯示給用戶進行編輯之前,預先加載具有自定義内容的撰寫視圖(在你呈現給用戶之後,隻有用戶可以編輯這些自定義内容)。想要了解更多關于社交框架(Social framework)的編程界面,包括SLComposeViewController類,請參見 Social Framework Reference.
如果可能,避免要求用戶登錄進入一個社交媒體賬戶。社交框架(Social framework)會和帳号框架(Accounts framework)一起來支持一個單點登錄模式,所以你可以獲得授權來訪問用戶的帳号,而無需要求他們來重新授權。如果用戶還沒有登錄進入一個帳号,你可以顯示UI來讓他們進行登錄。
iCloud可以讓用戶随時随地用不同的設備訪問他們想要的内容。将iCloud集成到應用中,用戶不用進行同步操作就可以在不同場景下使用不同的設備訪問并編輯私人信息。
為了提供這種體驗,你可能需要重新檢查你的應用中現有的信息,尤其是用戶自建内容的存儲、訪問和展示方式。想要了解如何使用iCloud,請參考iCloud Design Guide.
iCloud用戶體驗的一個基本方向是透明性:理想情況下,用戶不需要知道他們的信息存儲在什麼地方,也不需要去思考當前浏覽的信息是哪個版本的。以下幾點可以幫助你創建用戶期望的iCloud體驗。
如果可能,讓用戶方便地在你的應用中啟用iCloud。在iOS設備上,用戶可以在設置中登錄iCloud賬戶,因此多半用戶會期望應用可以自動啟用iCloud。但是如果你覺得用戶可能需要自主選擇是否使用你應用的雲服務,你可以在用戶第一次進入應用時提供一個簡單的選項來進行設置。大多數情況下,這個選項應該為:是否将所有内容上傳到雲端。
尊重用戶的iCloud空間。一定要記住iCloud空間是用戶花錢買來的有限資源。你應該使用iCloud來存儲用戶自己創建和可理解的信息,避免将可再生的應用資源和内容存儲在雲端。同樣要記住,當用戶登錄了iCloud賬戶時,你的應用的文件夾内容也會自動備份到雲端。所以為了節省用戶雲端空間,你最好隻挑選必要的信息存儲于文件夾中。
避免讓用戶自己選擇在iCloud上存儲哪些文件。一般地,用戶會期望他們在意的所有信息都能夠通過iCloud訪問到。實際上大多數用戶都不需要進行個人文件存儲的管理,所以你的應用也可以不用考慮這個問題。為了提供更好的用戶體驗,你可能想要重新構建處理和展示内容的方式,這樣就可以給用戶提供更多的文件管理功能。
決定哪種類型的信息需要存儲在雲端。除了存儲用戶自建的文件和内容,你還可以存儲少量的其他信息在雲端,例如用戶當前的狀态,用戶的偏好設置等等。你可以使用iCloud的關鍵值存儲來保存這類信息。例如,用戶使用你的應用看了一個雜志,你可以使用iCloud的關鍵值存儲來保存用戶浏覽到的位置,這樣用戶在别的設備上重新打開這個雜志時就能從上次離開的地方繼續浏覽了。
如果你使用iCloud的關鍵值存儲來保存用戶的偏好設置,确保用戶在每個設備上都是想這樣設置的。例如,有些偏好設置在工作環境中比在家裡要更好用。在某些情況下,将偏好設置保存在應用服務器上要比保存在雲端更合理,這樣偏好設置就不會受iCloud的限制。
确保iCloud無法使用時應用的行為是合理的。例如,用戶退出iCloud賬戶,關閉應用的iCloud或者進入飛行模式時,iCloud都是無法使用的。在這些情況下,用戶都進行了某些操作來禁止iCloud服務,所以你的應用可以不用再進行提醒。但是,需要告訴用戶在打開iCloud之前,當前做的修改在其他設備上都無法看到。
避免給用戶創建“本地”文件的選項。不管你的應用是否支持iCloud,都不應該給用戶提供因設備而區分的文件系統。相反,你應該希望用戶關注通過iCloud訪問文件的普适性。
在合适的時候自動更新信息。最好不需要用戶來确認他們正在訪問的是最新的内容。但是,也需要在用戶設備存儲空間和帶寬限制之間做出平衡。如果你的用戶要使用非常大的文件,那麼讓他們自己選擇是否要從雲端下載一個更新的文件可能更合适。如果需要這樣做的話,可以設計一種方式來指出當前在雲端有一個該文件的最新版本。當用戶選擇更新時,如果下載時間較長最好給用戶明顯的反饋。
告知用戶删除某文件的後果。當用戶從有iCloud服務的應用上删除文件的時候,這個文件同樣會從用戶的iCloud賬号和其他設備上删除。所以最好在執行删除操作之前告知用戶删除的後果,讓用戶進行确認。
必要時盡可能早地告知用戶沖突問題。使用iCloud編程接口,你需要在不打擾到用戶的情況下解決大多數不同版本之間的沖突問題。但在有些情況下,你需要盡可能早地檢測出沖突問題來避免用戶在錯誤版本上浪費太多時間。你需要設計一種自然的方式來告訴用戶有沖突存在,接着給用戶提供方便的方式來區分不同版本以及做出決策。
确保在搜索中包括用戶在雲端的信息。使用iCloud的用戶趨向于認為雲端的信息是普遍可訪問的,所以他們會期望搜索結果中也有雲端的信息。如果你的應用允許用戶搜索他們的信息,确保你使用了将搜索擴展到iCloud賬戶的接口。
在iOS 8及之後的版本中,使用HealthKit構建的應用可以利用從健康應用中獲取的數據為用戶提供更強大、更完整的健康及健身服務。在用戶允許的情況下,應用可以通過HealthKit來讀寫健康應用(用戶健康相關數據的存儲中心)中的數據。
舉例來說,用戶可以允許營養應用從健康應用中獲取體重及活動數據,用于告訴他們為了達到既定目标一天應該消耗多少卡路裡。這個營養應用還可以通過HealthKit更新健康應用上實際消耗的卡路裡數據,讓用戶能更容易地跟蹤他們的健康計劃的進展。想要了解如何将HealthKit整合進你的應用中,請參閱HealthKit Framework Reference.
下面的指南能夠幫助你設計出讓人信任且喜愛的健康類應用:
當且僅當你有令人信服的理由時才去訪問健康應用中的數據。HealthKit是為了專注于健康及健身服務的應用而設計的。如果一個應用請求獲取與其不相關的健康信息,用戶不太可能會放心地将個人數據提供給這個應用。因此,你需要确保用戶能夠理解你的應用需要獲取他們某些具體的個人健康數據的原因,并告訴他們共享這些數據的好處。
避免在用戶還不知道用途前就向他們請求訪問私人健康數據。當用戶能夠看到當前的任務和你需要訪問的數據的關聯性時,會更樂意給予你訪問權限。舉例來說,當用戶在給一個減肥應用填寫資料時,讓他允許你訪問健康應用中儲存的體重數據是合理的。但如果那個減肥應用在啟動時就立即提出訪問體重數據的請求,用戶更可能會選擇拒絕分享該個人數據。
使用系統提供的用戶界面來請求訪問用戶的數據。當用戶想要向應用授予訪問他們的數據的權限時,一般會期望看到如下圖所示的系統權限許可列表。為了确保給用戶提供良好的用戶體驗,應避免在應用的其他頁面中重複使用權限許可列表上的信息。而是應該在權限列表中添加些自定義信息來說明為什麼你的應用需要訪問特定的數據(參閱HKHealthStore Class Feference可獲取更多信息)的原因。确保這些信息簡潔且能清晰地說明你的應用是如何利用健康應用中的數據,以及收集這些數據的好處。
注意:當用戶決定停止與你的應用共享數據時,讓他們可以在系統設置中即可完成變更,而不需要通過你的應用界面。
不要在你的應用界面中使用健康應用的圖标、圖片或者截圖。和蘋果所有的系統設計一樣,這些圖像都是受到版權保護的,不應該在你的應用中出現。
不要在你的應用中使用“HealthKit”這個專用術語。HealthKit是代表能夠獲取健康應用中儲存的數據的技術框架的專用技術術語。如果你需要向用戶解釋你的應用和健康應用中的數據的聯系,請使用“健康應用”這個用語。例如,你可以說你的應用“将保存信息至健康應用中”或“所使用的數據是從健康應用中獲取的”。
應用内購買服務使得用戶可以在你的應用中、你所設計的商店中購買到數字産品。
例如,用戶可以做這些事:
你可以使用StoreKit框架以嵌入的方式将商店添加到你的應用中,并且用來支持應用内購買服務。當用戶進行購買時,StoreKit會連接到應用商店進行安全支付,然後再告知你的應用以便它可以提供用戶已購買的商品。
重要:應用内購買服務隻提供支付功能,其他功能由你自己提供,例如向用戶展示商品,解鎖内置功能,從你自己的服務器上下載内容等等。當然,你所提供的所有商品都必須在應用商店注冊過。
想要了解關于在應用中添加商店的技術要求,請查看In-App Purchase Programming Guide.想要了解更多關于應用内購買的商業需求信息,請查看App Store Resource Center.當然,你還應該查看相關許可協議來确定你的應用可以出售哪些商品以及如何提供商品。
遵循以下幾點規範,可以幫助你設計出用戶喜歡的購買體驗。
将商店的使用體驗優雅地集成到你的應用中。在展示商品和處理交易時,給用戶提供一種熟悉、一緻的體驗。你一定不希望用戶在訪問你的商店時感覺像是進入别的應用。
使用簡單明了的标題和說明。最好能讓用戶在掃過一組項目時,可以快速發現感興趣的内容。文案上不要截斷隐晦,簡單直白的語言和标題更容易讓用戶理解你所要展示的商品。
不要更改默認的确認對話框。當用戶購買一個商品時,StoreKit會提供一個确認對話框(如上圖所示)。這個确認對話框可以幫助用戶避免買錯東西,所以不要修改它。
遊戲中心給用戶提供玩遊戲、組織多人在線遊戲以及其他更多功能。玩家可以使用内置的遊戲中心應用來注冊賬戶、發現新遊戲、添加好友、浏覽玩家排名和戰績。
作為一名遊戲開發人員,你可以使用GameKit應用接口來發布分數和戰績到遊戲中心的服務器上,在你的遊戲頁面中顯示玩家排名,幫助用戶找到其他玩家。想要了解如何将遊戲中心集成到你的應用中,請查看Game Center Programming Guide.
遵循以下幾點規範,有助于你的應用給用戶提供好的遊戲中心體驗。
不要使用自定義的用戶界面來提示用戶登錄到遊戲中心。如果用戶在未登錄到遊戲中心的情況下打開了一個需要啟用遊戲中心的應用,系統會自動提醒他們去登錄。所以沒必要自定義一個登錄界面,而且有可能還會讓用戶感到困惑。
一般情況下,使用标準的遊戲中心界面。在少數情況下,可能自定義遊戲中心的界面是合理的,但是這樣做會有讓用戶感到困惑的風險。标準的遊戲中心界面對于iOS和OS X的用戶是熟悉的,而且它會給用戶一種置身于一個龐大遊戲社區的感覺。
允許用戶關閉語音聊天。有些用戶可能不想在進入遊戲時就自動開啟語音聊天,而且大多數用戶希望在特定情境下可以關閉語音聊天。
如果你允許你的應用中出現廣告,那麼你可以通過用戶浏覽或者點擊這些廣告獲得收益。(如圖所示,這個底部預留位置就是用來放置iAd橫幅廣告。)
通過iAd網絡你可以在你的用戶界面中以特定的視圖投放一則廣告。最初,這種視圖可以用來承載目标橫幅廣告,起到引導用戶進入查看全面廣告詳情的作用。當用戶點擊該橫幅廣告時,廣告就會執行預先設定的動作,例如播放一段影片、展示可交互的内容,或者啟動Safari打開目标網頁。該動作所展示的内容可以遮擋住你當前的用戶界面,或者使你的應用轉換到後台運行。
有三種類型的橫幅廣告供你在應用中使用:标準(standard)、中等矩形(medium rectangle) 和全屏(full screen)。所有類型的橫幅雖然在外觀和行為上存在差異,但都提供同樣的功能,就是引導用戶進入廣告。
标準橫幅(standard banner)占用屏幕較少的空間,通常從始至終都可見。你可以選擇在應用的哪些頁面展示标準橫幅,并在給這些頁面設計布局時預留出空間。
所有的iOS應用都可以展示标準橫幅。你可以使用ADBannerView類中的廣告視圖來顯示标準橫幅廣告。
中等矩形橫幅 (medium rectangle banner) 的行為同标準橫幅類似,同樣也可以選擇展示中等矩形橫幅的位置。
中等矩形橫幅隻能在iPad的應用中使用。你可以使用ADBannerView類中的廣告視圖來顯示中等矩形橫幅廣告。
全屏橫幅 (full screen banner) 會占用屏幕的大部分甚至是全屏空間,并且通常隻在應用程序流的特定時間或特定位置顯示。你可以選擇使用模态視圖來顯示橫幅廣告,或者用獨立頁來展示可滾動的廣告内容。(在下面的示例中,應用提供了一種雜志閱讀的體驗,通過翻頁離開或回到全屏廣告頁面。)
你可以使用ADInterstitialAd類中的廣告視圖在你的應用中顯示全屏橫幅廣告。
iAd框架包含了所有類型的橫幅廣告,并且會在右下角顯示iAd的标識。iAd框架的設計固定在屏幕底部時看起來效果最佳。
為了保證廣告無縫植入,并且要提供最好的用戶體驗,可以遵循以下幾點規範。
将标準橫幅廣告視圖盡量放置在屏幕底部或底部附近。這個位置的差别取決于屏幕底部是否包含欄(bar)以及是什麼樣的欄。
将中等矩形橫幅廣告視圖放置在不會幹擾内容的地方。和标準橫幅一樣,中等矩形橫幅也最好放置在屏幕底部或底部附近。放在底部附近也能減少幹擾用戶的可能性。
當用戶體驗存在中斷時請使用模态視圖來展示全屏橫幅廣告。如果你的應用中有自然中斷或情景轉換,用模态樣式來展示會更合适。當你使用模态樣式來展示全屏橫幅時(通過用presentFromViewController實現),用戶要麼進入廣告,要麼關閉它。出于這個原因,當用戶有做出轉變的預期時 (比如完成了一個任務後) 用模态視圖的形式來展示比較好。
應用的界面視圖進行轉場切換時不要使用模态樣式展示全屏橫幅。如果用戶在使用你的應用時會頻繁的進行屏幕切換操作,例如雜志翻頁或翻閱一些畫冊圖片合集,此時使用非模态的形式會更合适。當你使用非模态來顯示全屏橫幅時(通過使用presentInView實現),可以在用戶界面中保留欄 (bar) 使得用戶可以通過應用中的控件進入或退出廣告。同其他橫幅廣告一樣,點擊全屏橫幅廣告也會觸發iAd體驗,但是如果條件允許的話,你的應用也可以對橫幅廣告區域支持其他手勢操作 (比如拖動或滑動)。
确保使用合适的動畫效果來顯示和隐藏非模态的全屏橫幅視圖。例如,雜志閱讀應用可以用和雜志翻頁一樣的動畫效果。
确保橫幅廣告在應用中出現的時間和位置是合理的。用戶隻有在不覺得廣告會打擾他們正常的工作流程時才有可能去體驗iAd.這點對于遊戲這樣的沉浸式應用尤其重要:你肯定不想将橫幅放置在影響用戶玩遊戲的位置。
避免将橫幅放置在用戶隻會一掃而過的頁面。最好不要将橫幅廣告放置在用戶會快速略過的頁面,比如用戶正要深入挖掘或前往他們所關注的内容。通常用戶在一個頁面停留至少1、2秒後才有可能會點擊廣告。
盡可能的支持雙向展示橫幅廣告。最好讓用戶在使用應用時不必旋轉設備就能浏覽廣告。當然,支持雙向也能給你的廣告提供更大的展示區域。想要了解如何确保轉換方向時橫幅廣告能正常響應,請查看iAd Programming Guide.
不要讓标準或中等矩形橫幅廣告滾出屏幕。如果你的應用需要滾動來展示更多内容,确保橫幅廣告一直固定在它的位置上。
當用戶浏覽或與廣告進行交互時,暫停那些吸引用戶注意力或需要操作的活動。當用戶選擇浏覽廣告時,他們不想因此錯過應用中正發生的事件,也同樣不想讓應用打斷廣告體驗。一個好的經驗方法是像應用程序轉入後台運行那樣暫停當前活動。
除非有特殊情況,否則不要中斷廣告。一般情況下,當用戶浏覽并與廣告進行交互時,應用還是會繼續運行并接收事件,所以也有可能突然出現一個事件需要獲得用戶的注意力。然而,需要打斷廣告的場景其實非常少。有一種情景是有的應用會提供互聯網語音協議服務(VoIP).在這種應用中,有電話接入時可能會取消正在運行的廣告。
注意:取消廣告可能會對應用能接受的廣告類型以及能獲取的收益有不好的影響。
用戶可以通過AirPrint無線打印應用中的内容,還可以使用打印中心應用檢查打印任務。
你可以利用内置的支持程序來打印圖片和PDF文件,或者可以使用特定的打印程序接口來完成自定義的格式設置和渲染設置。iOS可以處理打印機的發現、任務排序以及在指定打印機上執行打印任務。
通常來講,用戶想要打印文件的時候,隻需要點擊應用中的标準動作按鈕(Action button)。當他們在界面視圖中選擇了要打印的項目後,可以接着選擇打印機,設置打印屬性,最後點擊打印按鈕開始打印。
打印中心應用是一個隻有在處理打印任務時才可見的後台系統應用,用戶可以用它來查看打印任務。用戶可以在打印中心浏覽當前打印隊列,查看某個打印任務的詳情,還可以取消某個任務。
隻需添加少量代碼就可以支持基本打印功能 (想要了解在代碼中添加打印功能,請查看Drawing and Printing Guide for iOS).想要确保好的打印體驗,可以遵循以下幾點規範:
使用系統提供的動作按鈕。用戶對系統提供的按鈕的含義和行為都很熟悉,所以盡可能的使用系統動作按鈕。如果你的應用沒有工具欄或導航欄,那就要另當别論了。在這種情況下,你就需要自己設計一個可以出現在應用主界面的打印按鈕,因為動作按鈕隻能在工具欄和導航欄中使用。
在當前情境下打印操作是基本功能時才顯示打印項(Print item).如果當前情境并不适合打印,或者用戶并不想打印,就不要在由動作按鈕顯示的視圖中将打印項顯示出來。
合适的話,給用戶提供更多打印選項。例如,讓用戶設置打印頁碼範圍或打印份數。
如果用戶不能打印,則不要顯示特定的打印用戶界面。在向用戶展示有打印項的界面前,确保用戶的設備是支持打印的。想要了解如何在代碼中實現,請查看UIPrintInteractionController Class Reference.
位置服務允許應用獲取用戶當前大緻的地理位置,設備指向的方向以及用戶移動的方向。其他系統服務,例如通訊錄、日曆、備忘錄和相冊等,同樣也允許應用訪問用戶存儲在裡面的數據。
雖然獲取了用戶數據的應用能帶來一定的方便,但還是需要為用戶提供維持信息私密性的功能。例如,用戶喜歡應用自動給内容加上位置标簽,或者可以找到附近的好友,但用戶也需要能在不想分享位置的時候關閉這些功能。(想要學習如何給應用增加獲取位置功能,請參閱Location and Maps Programming Guide.)
以下幾點可以幫助您以用戶不反感的方式獲取用戶數據。
确保使用戶理解分享私人數據的原因。如果沒有明顯的需要,用戶自然會對私人信息的請求感到懷疑。為了避免用戶反感,确保在用戶使用明顯需要個人信息的功能時再進行提醒。例如,即使沒有打開位置服務用戶也可以使用地圖,但是在用戶使用定位或導航功能時就會有提醒。
應用需要個人信息的原因不明顯時向用戶做出解釋。你可以在提醒框中給出文字性的描述,例如“這個應用需要訪問你的通訊錄”或者“是否允許應用獲取你的地理位置?”。這些文案最好明确且有禮貌以讓用戶無壓力的理解為什麼需要訪問他們的信息。
講述原因的文案應該遵循以下原則:
隻有當你的應用沒有用戶數據就無法提供基礎服務時,才在一開始就征求用戶的許可。如果你的應用在知道了用戶私人信息後才能提供主要功能是顯而易見的話,用戶不會因此覺得煩擾。
避免在用戶選擇需要數據的功能之前調用觸發提醒框的程序。這樣,就可以避免用戶疑惑為什麼在使用不需要私人數據的功能時有請求提醒。(注意,檢查用戶位置服務的設置并不會觸發提醒。)
檢查位置服務的設置來避免觸發沒必要的提醒。你可以使用核心位置的程序接口來實現(想要學習如何做,請參閱Core Location Framework Reference).使用這些知識,可以盡可能地在使用需要位置信息的功能時才進行提醒,或者完全避免提醒。
通過使用Quick Look,用戶可以在你的應用内預覽文件,即使你的應用是打不開這個文件的。舉例來說,你可以允許用戶預覽一些從網站上下載或從其他來源獲得的文件。
想要學習如何在應用中加入Quick Look文件預覽功能,請參閱Document Interaction Programming Topics for iOS.
在你的應用内預覽文件之前,用戶可在你定制的視圖中查看該文件的信息。例如,用戶從一封郵件中下載了附件之後,郵件應用(Mail)會在郵件中使用定制的視圖展示文件的圖标、标題和大小。用戶可以通過點擊它來預覽文件。
你可以在應用中用一個新的視圖來展示文件預覽,或者使用全屏模态視圖。展示的形式取決于你的應用運行在什麼設備上。
在iPad上使用模态視圖來顯示文件預覽。iPad的大屏幕适合在一個方便用戶離開的沉浸式環境中展示文件預覽。縮放操作(zoom transition)很适合展示預覽。
在iPhone上使用專用的視圖,最好是導航視圖來顯示文件預覽。這樣可以使用戶在應用情境中通過導航進入文件預覽,不至于迷失。雖然也可以在iPhone應用中使用模态顯示,但不推薦這樣做。(注意縮放操作在iPhone上并不适用。)
另外要注意的是,在導航視圖中顯示文件預覽意味着允許Quick Look在導航欄上放置特定的預覽控件。(如果你的視圖中包含工具欄,Quick Look會将預覽控件放在工具欄上。)
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!