导航栏
除非没有达到用户的期待,否则人们不会意识到一个app中导航栏的体验。你的工作就是在不引起注意的情况下,使用一种方式来实现导航栏来支持你app的结构和目的。
一般来说,有三种导航栏风格,每一种都很好的适应了一个独特的app结构:
- 层级
- 平面
- 内容或体验主导
在一个分层级的app中,用户通过在每一个屏幕做出一个选择来导航,直到到达了他们的目的地。为了导航到另一个目的地,用户必须回退一些步骤——或者从头开始——然后进行不同的选择。设置和邮件是使用分层结构的app的例子。
在一个平面信息结构的app中,用户可以直接从一个基础分类导航到另一个基础分类,因为所有的基础分类都可以在主屏幕进入。音乐和应用商店是使用平面结构的app的例子。
显然,在一个使用内容或体验导向的结构的app里,导航栏也是根据内容或体验来定义的。比如说,用户在书中直接从一页移动到另一页或者通过一个内容表单来选择页码;在一个游戏中,导航栏也经常是体验的一个重要部分。
在一些例子中,将多个导航风格组合到一个app中会工作的很好。比如说,一个平面结构的某一个基础分类下的条目,使用层级结构来显示是最好的。
用户也应该一直清楚他们在你的app的哪个位置,以及如何去往他们的目的地。无论哪一种导航风格适合你的app,最重要的是,用户到达内容的路径是有逻辑的,可预知的,易于跟随的。
UIKit定义了一些基础的UI元素来简单的实现层级和平面导航风格,除了一些帮助你实现内容导向的导航栏元素,比如在一个图书风格或者多媒体浏览app中。一个提供体验导向导航风格的游戏或者其他app,通常依赖自定义的元素和行为。
使用navigation bar来让用户简单的查看分层级的数据。navigation bar的标题可以告诉用户他们现在在层级中的位置;返回按钮使回到之前的层级变得简单。查看Navagation Bar来学习更多。
使用tab bar来显示对等的内容或功能类别。tab bar是支持平面信息结构的好方法,并且可以让用户持续的在类别间切换,不管他们现在在哪个位置。查看Tab Bar学习更多。
当每一个app的屏幕都表示同样类型的条目或页面的一个独立的实例时,使用page control。page control可以很好地告诉用户有多少条目或页面是可接触的,以及现在显示的是哪一个。比如说,天气使用page control来显示用户打开过多少个地点的天气界面。查看Page Control学习更多。
一般的,最好给用户一个可以到每个屏幕的路径。如果有一个屏幕用户需要在多个环境下查看,考虑使用一个临时的界面,比如modal view、action sheet或alert。查看Modal View、Action Sheet和Alert学习更多。
UIKit还提供了如下这些相关的控制器:
- Segmented Control。segmented control让用户在屏幕在看到不同类别或方面的内容;它不能导航向一个新屏幕。
- Toolbar。即使toolbar看起来和navigation bar或tab bar很相似,它不能够导航。它只是给用户一些对当前屏幕内容动作的控制。
本文翻译自
苹果官方开发文档