移动开发中导航栏和搜索栏在设计中应该注意哪些问题?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了移动开发中导航栏和搜索栏在设计中应该注意哪些问题?相关的知识,希望对你有一定的参考价值。
参考技术A一、导航栏位置
在ios上,导航栏是指显示在应用程序顶部,位于状态栏下方的容器区域,层级应高于当前页面内容。在安卓上,Google公司在Material Design中也赋予了它同样的定义,但是却给了它另一个名称,顶部应用栏( Top App Bar)。
导航栏是用于构架当前屏幕的内容,阐述当前屏幕的状态,并且起到连接父子级页面层次结构的作用。很多人疑惑,为什么标签栏不能叫做底部导航?因为标签栏是构架了多个屏幕之间平级页面的内容切换,和导航的定义没有任何关联。
二、导航栏UI设计规范与实际项目的应用
基本的导航栏容器一般承载的信息可能会有:标题;导航按钮;内容控件按钮;其他控件(比如搜索栏、分页标签或分页控件等);千万别忘了还有分割线。
1、导航栏标题设计规范
2017年以前的移动端规范下的导航栏还是循规蹈矩的,样式单一。但随着iPhone X等一系列全面屏手机相继问世后,移动设备在屏幕高度上有了进一步的扩展,界面设计在一屏内的发挥空间也随之增加。iOS11发布后,大标题导航栏设计风格兴起,随后被引入平台规范。
于是现在iOS与Material Design在导航栏上也都定义了两种导航栏标题规范:常规标题与大标题。
常规标题是指在高度为88px(iOS@2x下)的导航容器中,居中放置一个当前页面的标题。标题字号一般为34px-38px(34px为iOS标准规范,但实际项目中可以在尽量在不小于34px标准的情况下根据设计需求确定)。
大标题是将导航栏栏高增加到192px(iOS@2x),保留高度为88px的导航容器来承载内容控件按钮,将标题下坠居左。iOS的标准规范定义大标题的字号为68px。但由于英文有大小写区分,在视觉上有一定的层次表现,而中文因为缺少一定的层次结构,并且相同字号的中文视觉大小大于英文,所以大多数时候我们在进行大标题设计时,会适当缩小,一般为56px-64px居多。
大标题导航栏的优点毋庸置疑,页面留白更多,呼吸感更强,大气现代、更高,因为页面标题巨大,能够帮助用户快速确认当前所处位置;采用统一的大标题,让页面布局风格快速统一。但缺点也显而易见,因为增加了导航栏的高度,导致屏幕利用率降低,一些通过广告变现或更加注重一屏内内容呈现的应用便中和了常规导航与大标题导航的优缺点,进行了风格改进。
2、导航按钮及内容控件按钮设计规范
iOS规定导航按钮位置仅能用于放置返回按钮,可以添加一个层级的面包屑,帮助用户有效地明确当前页面层级;Material Design中,则不仅可以放置返回按钮,还另有作用,菜单图标-用于打开导航抽屉 或者 关闭图标-关闭工具栏。
与iOS的定义有着天壤之别,iOS非常明确地赋予了工具栏的定义,并且将导航栏和工具栏(Toolbars)彻底地分离开,典型案例就是Safari。在内容控件上iOS与Material Design也大相径庭,Material Design不去限制你的内容控件多少,因为它提供了溢出菜单,并可以根据屏宽的变化,自适应释出和收纳溢出菜单中的控件。
而iOS则规定我们,要给内容控件按钮足够多的空间,必要的时候,隐藏导航栏标题也未尝不可。真实的项目中我们经常为了快速落地,会存在一稿适配双平台的情况。这时候我们应该遵从哪一个平台的规范呢?答案是:许多大厂的做法已经向我们验证,规范不分家。
在iOS诸多的应用中溢出菜单早已普及,尽管这是Material Design提出的设计理念。虽然国内遵从Material Design进行android应用设计的情况相对较少,但它提供的设计理念与方案却并不局限在安卓平台。
3、分割线设计规范
分割线只是一种体现形式,我想要表达的是,别忘记区分导航栏与内容界面的视觉层级关系。Matetial Design提醒我们,顶部应用栏可以与内容位于同一高度,但滚动时,请增加导航栏的视觉高度,让内容在其后方滚动。而iOS则默认采用了背景模糊的方式区分了导航栏与内容区域的层级关系。
4、其他控件
关于其他控件,iOS只在规范中提及到了分页控件。苹果设计师考虑到部分场景在当前页面中还存在信息层级结构划分,此时建议可以在导航栏中使用分段控件。
国内的应用程序早已将导航栏容器的作用发挥到极致,基于导航栏层级始终高于内容区域的特性,我们通常可以将分段控件、分页标签、搜索栏等等用户可能随时使用的工具放在导航栏中。
导航栏用于构架当前屏幕的内容,阐述当前屏幕的状态,并且起到连接父子级页面层次结构的作用,在一个页面发挥着重要作用,设计好导航栏不仅仅是视觉上的工作,表现的方式、承载的按钮与组件、滚屏时的组合操作还能给用户带来极大的体验增益。因此掌握好导航栏的设计技巧对一名设计师来说尤为重要!
搜索框
在视觉上以下两点比较需要注意:
1、放大镜图标
使用图标。我不想对其会增加找到搜索栏的速度进行强调。越简单越好。越少的细节能够保证用户能快速地扫视它。虽然,只有一个图标本身而没有一个可输入的容器或按钮实际上会使搜索变得更加困难。人们通常会意识到,一个放大镜图标显示的是一个搜索工具,即使它没有标签。但是糟糕的是,只有一个图标则会使搜索更加困难。
2、一个真实的搜索按钮
并非每个人都是学会在网上冲浪的千禧一代,这意味着,并不是每个人都知晓在他们输入查询之后需要按下Enter键。在搜索输入旁边添加一个实际的按钮将帮助用户确认他们的下一步行动,进而减少用户所需的认知负荷。
输入特色:
确保可输入的长度不会太短。诺曼集团的相关研究表明,一个能输入27个字符的输入框,可以满足90%的用户需求。
可以输入5个字符与26个字符的搜索框的简单例子
明确占位符
在输入的占位符文本中使用适当的副本是很重要的,通常用户可以通过搜索得到提示。这会确保他们知道要搜索什么,也不会因为写不明白所要查询的问题而感到失望且无措。最近,web工具允许人们轻松地添加提示作为html5中的占位符来实现这一点。
标签栏、导航栏和段控制的设计问题
【中文标题】标签栏、导航栏和段控制的设计问题【英文标题】:Design Issue with tab bar, nav bar & segment control 【发布时间】:2011-06-08 16:50:37 【问题描述】:这更像是一个要求而不是一个问题。 有一个标签栏控制器,在标签栏控制器的其中一个控制器中有一个导航控制器。在它下面有一个段控件,我必须在表格视图中显示一些数据(我将通过 URL 连接获得)。在从段控件更改段时,表的内容将发生变化。并且段控件改变了表格中显示的数据类型,甚至 UITableViewCells 也不同。所有三个段都将在表格中显示数据。
一种可能的解决方案是更改数据并在更改段时重新加载表。 其他解决方案是在更改段时更改视图(将具有三个不同的视图控制器),这些视图控制器将在那里实现自己的表委托并具有独立的表视图。
我想第一个效率更高。第二个将使所有内容(代码)与不同的部分分开。但是有一些问题,导航控制器在内部视图控制器中是不可访问的。
谁能建议我最好的解决方案? 感谢您的建议。
【问题讨论】:
如果您在委托单例中保留对导航控制器的引用,当然可以访问内部 VC 中的导航控制器。我做了一些非常相似的事情(在某种程度上,选项 2 为每个表使用单独的 VC),看起来很糟糕,我认为最好的方法是为每个表使用不同的数据源,但单独的控制器工作正常。 切换数据源可能是最好的选择。相比之下,就效率而言,切换视图控制器在应用程序上可能非常麻烦 是的,我更喜欢第二个选项,但问题是在使用外部导航控制器弹出后,我没有在内部 VC 中调用 viewWillAppear。您能否详细说明使用不同的数据源。 【参考方案1】:我对此进行了很多研究,最终决定更改单个 TableView 的数据源。我只有两个段,单元格类型,fetchedResultsControllers 等,它仍然是一个相当重的自定义 TableViewController。延迟加载图片,如果你需要这样做,也有点痛苦。
我不需要为各个表视图处理导航控制器,但如果这对您很重要,那么第二种方法可能是最好的。尽管有上述情况,但第一种方法在成功后效果很好。不过有兴趣听到更好的模式。
【讨论】:
以上是关于移动开发中导航栏和搜索栏在设计中应该注意哪些问题?的主要内容,如果未能解决你的问题,请参考以下文章