人們通常不會(huì)太注意一個(gè) app 中的導(dǎo)航體驗(yàn)除非它沒(méi)有滿足他們的期望。你的工作就是實(shí)現(xiàn)一個(gè)可以支持應(yīng)用結(jié)構(gòu)和目的的導(dǎo)航并且不會(huì)過(guò)分引起用戶(hù)的注意。
廣義來(lái)說(shuō),有三種導(dǎo)航樣式,每一個(gè)都能很好的滿足特定 app 的結(jié)構(gòu):
在一個(gè)分層式的 app 中,用戶(hù)通過(guò)單一的選擇來(lái)到達(dá)他們想去的位置。如果用戶(hù)想去另一個(gè)地方,他們退回幾步,或者從頭開(kāi)始,通過(guò)選擇不同的選項(xiàng)。“設(shè)置”和“郵件”應(yīng)用就是分層樣式很好的例子。
http://wiki.jikexueyuan.com/project/ios-human-interface-guidelines/images/navigation_hierarchy.gif" alt="" />
在一個(gè)扁平結(jié)構(gòu)的 app 中,用戶(hù)可以直接從一個(gè)基本分類(lèi)導(dǎo)航至另一個(gè),因?yàn)樗械姆诸?lèi)都列在主屏幕上。“音樂(lè)”和“App Store”是扁平結(jié)構(gòu)的例子。
http://wiki.jikexueyuan.com/project/ios-human-interface-guidelines/images/navigation_flat.gif" alt="" />
在內(nèi)容或體驗(yàn)驅(qū)動(dòng)的結(jié)構(gòu)中,導(dǎo)航是通過(guò)內(nèi)容或用戶(hù)體驗(yàn)進(jìn)行的。例如,用戶(hù)通過(guò)翻動(dòng)頁(yè)面或選擇目錄中的一頁(yè)來(lái)看一本書(shū);在游戲中,導(dǎo)航在很大程度上取決于用戶(hù)體驗(yàn)。
http://wiki.jikexueyuan.com/project/ios-human-interface-guidelines/images/navigation_contents.gif" alt="" />
在某些情況下,一個(gè) app 可以結(jié)合多種導(dǎo)航。例如,在扁平結(jié)構(gòu)中,一個(gè)分類(lèi)中的項(xiàng)目可能是分層結(jié)構(gòu)的。
用戶(hù)應(yīng)該永遠(yuǎn)都知道自己正處于 app 中的何處,也要知道如何前往下一個(gè)地點(diǎn)。無(wú)論你使用何種導(dǎo)航模式,最重要的事情是用戶(hù)前進(jìn)的路徑是有邏輯的、可預(yù)測(cè)的、容易實(shí)現(xiàn)的。
UIKit 定義了一些標(biāo)準(zhǔn)的 UI 元素,這使得實(shí)現(xiàn)分層結(jié)構(gòu)和扁平結(jié)構(gòu)的導(dǎo)航變得十分簡(jiǎn)單,此外,一些元素還可以幫助你實(shí)現(xiàn)內(nèi)容驅(qū)動(dòng)的導(dǎo)航,例如電子書(shū)或視頻應(yīng)用。像游戲或其他需要以用戶(hù)體驗(yàn)驅(qū)動(dòng)的應(yīng)用通常依靠自定義的元素和行為。
使用導(dǎo)航欄幫助用戶(hù)輕松訪問(wèn)分層信息。導(dǎo)航欄的標(biāo)題可以顯示用戶(hù)當(dāng)前在層次中的位置;返回按鈕可以輕松回到上一級(jí)界面。想要了解更多請(qǐng)看《欄》。
使用標(biāo)簽欄展示內(nèi)容和功能的同級(jí)分類(lèi)。標(biāo)簽欄可以很好地展示扁平結(jié)構(gòu),用戶(hù)可以在不同的分類(lèi)之間隨意切換。想要了解更多請(qǐng)看《欄》。
當(dāng) app 的每一頁(yè)都有相同的項(xiàng)目或頁(yè)面時(shí),可以使用頁(yè)面控制技術(shù)。頁(yè)面控制的優(yōu)點(diǎn)是可以向用戶(hù)展示可用的項(xiàng)目或頁(yè)面,以及當(dāng)前顯示的內(nèi)容。例如,“天氣”應(yīng)用使用頁(yè)面控制來(lái)展示用戶(hù)打開(kāi)了多少特定地點(diǎn)的天氣頁(yè)面。想要了解更多請(qǐng)看《控件》。
通常情況下,每個(gè)頁(yè)面都只有一條路徑到達(dá)。如果某個(gè)界面用戶(hù)需要在多個(gè)地方進(jìn)入,考慮使用臨時(shí)視圖,例如模態(tài)視圖,動(dòng)作菜單或警告框。
UIKit 也提供了以下的相關(guān)控制: