从今天起,我们开始介绍iOS和Android设计规范中的各种控件。掌握它们,能有效地帮你你设计出一个高质量的交互稿。今天我们要介绍的是提示框,英文是toast。

交互设计师在设计交互稿的时候,时常需要一些反馈手段,以提示用户操作的结果。Toast是其中很常用的一种:它简单、小巧、对用户的打扰小。然而现在很多应用中,存在对于toast过度使用的情况,并且常常出现Android样式的toast出现在iOS应用中(反之亦然)的情形。在研究了iOS和Android的规范之后,笔者惊人地发现iOS中其实是没有toast这种部件的。到底我们在设计的时候应该处理这种部件呢?且看下面的分解。

Material Design Guidelines

Google的Material Design规范中,是把toast和snackbars归为一类的。下面是规范中对snackbars的定义:

Snackbars包含一行与进行的操作直接相关的文案(文案前不可有icon)。它可以包含一个操作。


Snackbar示例

规范中对toast的定义:

Toast优先适用于系统提示。它也在屏幕下方出现,但是不能被划出屏幕外(而被清除)。


Toast示例

行为:Snackbars/toast从屏幕底部向上出现,经过设定的秒数后消失,或者用户进行了别的操作它们也会消失。

Snackbar的出现和消失

简洁:提示的文案要简短,包含的操作按钮最多只有一个,或者没有。(注意,snackbar不能包含使其消失的“取消”按钮!)

左边是正确的,右边是错误的(因为多了“取消”按钮)

�不可重叠:snackbar与floating action button不能重叠

一次只出现一个:如果出现了一个snackbar,这时候用户进行了操作,需要出现另一个,则第一个snackbar从上向下退出,之后第二个snackbar从下向上出现。

�反例:不能同时出现两个snackbars

以上是Google Material Design中对于snackbars和toast的定义。

iOS Human Interface Guidelines

对于iOS系统,在研究了iOS的规范之后,笔者有个惊人的发现:严格地说,iOS规范中没有Toast这个部件。笔者找遍了iOS的人机交互设计规范,都没有找到对于Toast这种部件的介绍,与之最为接近的,是Alert(警告框)。但警告框的使用场景与Toast不同,之后将另开一篇文章介绍。在iOS系统中,与toast对应的是“HUD”(透明指示层)。

iOS系统中的HUD弹窗

iOS的HUD与Android的Toast的区别有:

1. HUD出现在屏幕的中央,Toast在底部;

2. HUD可以由icon,Toast不能有icon,只能用文字;

3. HUD一般是毛玻璃透明,Toast一般是灰黑或者黑色半透明;

4. HUD中内容可以变化(如调节音量时),Toast中内容不可变化。

研究了iOS的设计规范,发现规范中“feedback(反馈)”一节中,也没有提到Toast或者HUD,笔者认为,苹果对于Toast这种形式,是比较谨慎的。在介绍反馈时,苹果提到:

潜移默化地将状态改变或者其它类型的反馈放进你的界面中。理想的情况是:用户可以不用进行操作或者被打扰,就能得知重要的信息。

Unobtrusively integrate status and other types of feedback into your interface. Ideally, users can get important information without taking action or being interrupted.

而且举了苹果自家邮件应用的例子:


在应用的底部操作栏,展示了当前邮件的状态:“刚刚更新,2封未读”。我想,这正是符合苹果“不操作、不打扰”的原则。相比之下,在屏幕中间出现HUD,虽然也不用操作,但是打扰的程度却严重了许多。因此,在对iOS的应用进行设计的时候,操作的反馈最好是这种打扰程度比较小的,或者通过操作本身就能看到结果的,比如下面这个例子:

用户进行删除操作之后,短信就消失了,这时候就不需要再弹出HUD提示“已删除”。

以上对比了iOS和Android设计规范中对Toast这类提示框的用法说明。有一点还想提醒大家:规范是官方给出的最标准的做法,但是具体的运用还是要看场景的需要。很喜欢初中老师说过的一句话:“学数学要会‘死去活来’,要死死地掌握住公式,然后灵活运用”。对于规范,也是这个道理。

知识运用

请回答一下两个问题,这将帮你更好理解这周的主题。

1. 既然iOS的设计规范不鼓励使用toast,那么在日常的设计中,toast应该在什么情况下使用?

2. 请查看你手机里的APP,尝试找到一个toast使用错误的地方,和使用正确的地方。这将帮你理解如何正确地使用toast。

更多相关文章

  1. Cordova实现文件创建和读写操作(支持Android和IOS等)
  2. Android线程安全问题总结
  3. Android(安卓)Studio录制手机屏幕并制作GIF演示动画
  4. Android中AsyncTask的处理后台耗时操作(如list排序,进度加载)
  5. 谈谈Android线程的认识
  6. android 中 Notification 关于状态栏的一些操作
  7. Android(安卓)淡入淡出动画
  8. Android(安卓)如何导入已有的外部数据库
  9. 【Android】Handler使用入门 处理耗时较长的程序

随机推荐

  1. Android(安卓)Studio 自定义快捷注释模板
  2. 2011.10.13(2)——— android Matrix学习03
  3. [Android]【安卓】Json数据的快速拼装和
  4. arcGis for android 学习之callOut
  5. Android(安卓)AnimationDrawable运行的几
  6. Android(安卓)Studio 上传aar(Library)到
  7. Material Design之TabLayout的用法(标题栏
  8. Android(安卓)Fragment中监听事件
  9. 使用TestProject Python SDK创建移动Appi
  10. 带你一步一步深入Handler源码,拿下面试官