一、Bottons( 按鈕 )
按鈕啟動應用的特定操作,樣式可以自定義,可以包括標題或圖標。系統(tǒng)為大多數(shù)情形提供了很多預定義的按鈕樣式。您還可以設計完全自定義的按鈕。
開發(fā)指南請參閱?UIButton。
系統(tǒng)按鈕
系統(tǒng)按鈕通常顯示在導航欄和工具欄中,但可以在任何地方使用。

在標題中使用動詞。一個特定的動作標題可以暗示一個按鈕是可交互式的,并能讓用戶在點擊前就能預知操作結果。
使用標題樣式。除了文章,協(xié)調(diào)連詞和四個字母以內(nèi)的的介詞之外,可以使用大寫字母引起用戶注意。
盡量保持標題簡短。超長的文本可能會擠滿您的界面,并可能會在較小的屏幕上截斷。
考慮僅在必要時添加描邊或背景。默認情況下,系統(tǒng)按鈕沒有描邊或背景。然而,在某些內(nèi)容情境下,需要邊界或背景來暗示交互性。在Phone應用程序中,數(shù)字的描邊加強了傳統(tǒng)的通話模式,“呼叫”按鈕的背景成為一個引人注目的目標,使其很容易觸發(fā)。
有關開發(fā)指南,請參閱?UIButton 按鈕類型中的?UIButtonTypeSystem?。
詳細信息按鈕
詳細信息按鈕觸發(fā)后會打開一個視圖 - 通常是模態(tài)視圖 - 包含附加信息或本屏內(nèi)相關選項的特定功能。雖然您可以在任何類型的視圖中使用它們,但在表中通常使用詳細信息按鈕來訪問有關特定行的信息。

在表中適當使用詳細信息按鈕。當表行中存在詳細信息按鈕時,點擊該按鈕將顯示其他信息。輕擊其他地方選擇該行或?qū)е聭枚x的行為。如果您希望用戶點擊整個行以查看更多詳細信息,請勿使用詳細信息按鈕。而是使用展示細節(jié)的附件控件,其顯示為向右的小箭頭。請參閱?UITableViewCell 中的?UITableViewCellAccessoryType?。
有關開發(fā)指南,請參閱?UIButton 按鈕類型中的?UIButtonTypeDetailDisclosure?。
信息按鈕
信息按鈕點擊后會顯示有關應用程序的配置詳細信息,有時位于當前視圖的背面。信息按鈕有兩種風格 - 深淺兩種。選擇最適合您應用程序設計的風格,并且不會在屏幕上丟失。

有關開發(fā)指南,請參閱?UIButton 按鈕類型中的?UIButtonTypeInfoLight 和UIButtonTypeInfoDark? 。
添加聯(lián)系人按鈕
用戶可以點擊添加聯(lián)系人按鈕來瀏覽現(xiàn)有聯(lián)系人列表,并選擇一個用于插入文本字段或其他視圖。例如,在郵件中,您可以點擊郵件的“收件人”字段中的“添加聯(lián)系人”按鈕,從聯(lián)系人列表中選擇收件人。

除了添加聯(lián)系人按鈕之外,還允許鍵盤輸入。 “添加聯(lián)系人”按鈕為輸入聯(lián)系人信息提供了一種可選擇的方法,而不是替換。把它作為添加現(xiàn)有聯(lián)系人的快捷方式是很好的,但也應該允許用戶通過鍵盤輸入聯(lián)系人信息。
有關開發(fā)指南,請參閱?UIButton 按鈕類型中的?UIButtonTypeContactAdd 。
二、編輯菜單(Edit Menus)
用戶可以在文本字段、文本視圖、網(wǎng)絡視圖或圖像視圖中觸摸并按住或雙擊元素,完成選擇內(nèi)容并顯示編輯選項,如完成如復制和粘貼等操作。

顯示適于當前上下文當命令。默認情況下,選項通常包括剪切、復制、粘貼、選擇、全選和刪除等命令,其中任何一個可以默認為禁用樣式。如果沒有被選擇的文本,菜單不應顯示像復制或剪切這樣的選項。類似地,如果已經(jīng)選擇了某個選項,菜單不應該再顯示其他選項。
如有必要,請調(diào)整編輯選項的位置。默認情況下,菜單位于插入或選擇點的上方或下方,具體取決于可用空間,并包含指向相關內(nèi)容的指針。雖然您無法更改菜單的形狀,但其位置可配置 - 防止它覆蓋重要的內(nèi)容或界面的部分。
不要執(zhí)行與編輯菜單相同功能的其他控件。提供多種啟動操作的方法會導致用戶體驗不一致,甚至導致混亂。例如,如果您的應用程序允許用戶使用菜單來復制內(nèi)容,就不要再提供復制按鈕。
允許選擇和復制潛在有用的不可編輯文本。用戶通常希望將靜態(tài)內(nèi)容(如圖像標簽或社交媒體狀態(tài))添加到電子郵件、筆記或網(wǎng)頁搜索中。
不要向按鈕添加編輯選項。如果這樣做,嘗試顯示選項的用戶將會終止激活按鈕。
編輯操作可撤銷。在執(zhí)行操作之前,菜單不需要確認。因為用戶在執(zhí)行操作后可以改變主意,所以提供撤消和重做選項。
通過用戶自定義命令擴展編輯選項。您可以通過提供應用程序特定的命令來增加交互效率。像標準命令一樣,任何自定義命令都應該對選定的文本或?qū)ο筮M行操作。
在系統(tǒng)提供的命令之后顯示自定義命令。不要在使用系統(tǒng)提供的命令中插入自定義命令,系統(tǒng)命令是眾所周知的并經(jīng)常使用的。
最小化自定義命令的數(shù)量。不要給用戶太多的選擇。
保持自定義命令名稱簡短。命令名稱應該是簡短描述要執(zhí)行的動作的動詞或動詞短語。使用標題的大寫風格,除了文章、協(xié)調(diào)連詞和四個以下字母的介詞之外的每個單詞都大寫。
有關開發(fā)指南,請參閱?Text Programming Guide for iOS?和?UIMenuController?中的 Copy, Cut, and Paste Operations?。
三、標簽 (Labels)
標簽描述了屏幕界面元素或提供了一個短消息。雖然用戶無法編輯標簽,但有時候它們可以復制標簽里的內(nèi)容。標簽可以顯示任何數(shù)量的靜態(tài)文本,但最好保持簡短。

保持標簽可讀性。標簽可以包括純文本或樣式文本。如果您調(diào)整標簽的樣式或使用自定義字體,請確保不會犧牲易讀性。最好采用動態(tài)類型,這樣當用戶在設備上更改文本大小時,您的標簽仍然看起來不錯。請參閱?Dynamic Type。您還應該通過啟用輔助功能選項測試您的標簽,例如粗體文本。請參閱Accessibility。
了解更多文本信息,請參閱?String Programming Guide。了解如何創(chuàng)建文本樣式,請參閱?Attributed String Programming Guide。有關標簽開發(fā)指南,請參閱?Attributed String Programming Guide。
四、頁面控件(Page Controls)
頁面控件顯示當前頁面在頁面列表中的位置。它顯示為一系列小的指示點,代表可用頁面的打開順序。一個實心點表示當前頁面。在視覺上,這些點總是等距離的。如果屏幕上出現(xiàn)太多,則會被剪切。用戶可以點擊頁面控件的前端或后端來訪問下一頁或上一頁,但是他們無法點擊特定的點來轉(zhuǎn)到特定的頁面。導航總是順序發(fā)生,通??梢酝ㄟ^將頁面滑動到一邊。

不要跨層級使用頁面控件。頁面控件不能顯示頁面間的聯(lián)系或指示哪個頁面對應于哪個點。這類型的控件設計用于彼此平級的頁面。
不要顯示太多的頁面。超過約10個點時很難乍一看就算清的,順序訪問超過20個開放頁面則是耗時的。如果您的應用程序需要顯示超過20同級頁面,請考慮使用不同的排列方式(例如網(wǎng)格),從而實現(xiàn)非順序?qū)Ш健?/p>
屏幕底部的頁面控件居中。頁面控件應始終居中并位于內(nèi)容底部和屏幕底部之間。這將保持頁面控件可見,同時也不會阻擋內(nèi)容。
開發(fā)指南請參閱?UIPageControl。
五、選擇器(Pickers)
選擇器包含一個或多個不同值的可滾動列表,每個列表都有一個選定的值,顯示在視圖中心的較暗的文本中。選擇器通常位于屏幕的底部或當用戶編輯字段或點擊一個菜單時彈出。選擇器也可能出現(xiàn)在內(nèi)部,比如編輯日歷中的日期時。選擇器的高度大致是五行列表的高度。選擇器的寬度可以是屏幕的寬度,也可以是封閉視圖的寬度,這取決于設備和情境。
使用可預測和邏輯排序的值。當可滾動的列表是固定的時,選擇器中的很多值可能是隱藏的。保證用戶可以預測這些被隱藏的值是很好的方式,比如用一個列表按字母順序排序的國家,所以他們可以很快地通過移動的列表選擇。
避免切換屏幕時顯示選擇器。當顯示在上下文中、在被編輯的字段的下方或附近時,選擇器能夠正常工作。
列表值太多時使用表單替代選擇器。在選擇器導航較長的列表可能會導致交互太過乏味。一個表的高度可調(diào),還可以包含一個索引,使?jié)L動速度更快。
開發(fā)指南請參閱?UIPickerView。
日期選擇器
日期選擇器是選擇特定日期、時間或兩者的高效控件。它還提供了一個顯示倒計時器的界面。
日期選擇器有四種模式,每種模式都顯示不同的可選值列表。
1)日期:顯示月、日、月和年。
2)時間:顯示小時、分鐘和(可選)上午/下午的指定。
3)日期和時間:顯示日期、小時、分鐘和(可選)上午/下午的指定。
4)倒計時定時器:顯示時間和分鐘,最高可達23小時59分鐘。
日期選擇器中顯示的精確值和它們的順序取決于用戶的區(qū)域設置。
在指定分鐘時考慮提供較少的粒度。默認情況下,一分鐘列表包含60個值(0到59)。你可以選擇增加分鐘間隔,只要它平均分成60個。例如,可以設定15分鐘為一個間隔(0, 15, 30和45)。
開發(fā)指南請參閱?UIDatePicker。
六、進度指示器(Progress Indicators)
當應用程序加載內(nèi)容或執(zhí)行冗長的數(shù)據(jù)處理操作時,不要讓用戶坐在那里盯著靜態(tài)屏幕。使用活動指示器和進度條,讓用戶知道應用程序沒有停頓,并讓他們知道還要等多久。
也可以參閱?Loading。
活動指示器
一個活動指示器隨著無法量化的任務旋轉(zhuǎn),如隨著加載或同步復雜的數(shù)據(jù)進行。任務完成時它就會消失?;顒又甘酒鞑痪哂薪换バ再|(zhì)。
可量化的進程使用進度條。如果活動是可量化的,請使用進度條而不是活動指示器,以便用戶能夠更好地衡量發(fā)生的情況和需要多長的處理時間。
保持活動指示器旋轉(zhuǎn)。看到停止的活動指示器用戶會自動聯(lián)想到活動停滯。保持旋轉(zhuǎn),確保用戶知道發(fā)生的事情。
在等待任務完成時提供有用的信息是極其有用的。包括在活動指示器上方添加標簽,以提供輔助信息。避免模??糊的術語,如加載或驗證,因為活動指示器不能增加任何值。
開發(fā)指南請參閱?UIActivityIndicatorView。
進度條
進度條通過從左到右填充軌跡顯示任務已持續(xù)時間。進度條是也是非交互式的,盡管可以通過一個按鈕來取消相應的操作。
始終準確報告進度。不要顯示不準確的進度信息,這只會使你的應用程序更加忙碌。只能對可量化的任務使用進度條。否則,請使用活動指示器。
對具有明確定義持續(xù)時間的任務使用進度條。進度條可以非常好的顯示任務的狀態(tài),特別有助于提示完成任務還需多長時間。
隱藏導航欄和工具欄中軌道的未填充部分。默認情況下,進度條的軌跡包括已填充部分和未填充部分。當在導航欄或工具欄中使用,例如表示頁面加載時,應將進度條配置為隱藏軌道的未填充部分。
考慮自定義進度條的外觀以匹配您的應用程序。進度條的外觀可以根據(jù)應用的設計進行調(diào)整。例如,您可以指定軌道和填充的自定義色調(diào)或圖像。
開發(fā)指南請參閱?UIProgressView。
網(wǎng)絡活動指示器
在除了iPhone X的所有設備上,網(wǎng)絡活動指示器會在網(wǎng)絡環(huán)境發(fā)生變化時,在屏幕頂部的狀態(tài)欄中旋轉(zhuǎn)。當網(wǎng)絡穩(wěn)定時,它就消失。該指示器看起來像一個活動指示器,并且是非交互式的。
僅對持續(xù)超過幾秒的網(wǎng)絡操作顯示網(wǎng)絡指示器。不要對快速網(wǎng)絡操作顯示指示器,因為它可能在任何人注意到它的存在或?qū)崿F(xiàn)其通信意圖之前就消失了。
可參閱?Status Bars。開發(fā)指南請參閱?UIApplication 中的?networkActivityIndicatorVisible 。