警告,动作表单和模式视图是视图的几种类型,当需要引起用户的注意,或者需要提供额外的选项或功能时,这些视图就会出现。图7-1显示了这几种视图的例子。
图 7-1 动作表单,模式视图和警告
要了解这几种类型视图的编程实现,请参考“模式视图控制器”。
用法和行为
警告,动作表单和模式视图都是模式的,这意味着用户必须通过点击按钮显式地关闭它们,然后才可以继续使用应用程序。虽然有些时候您需要警告用户潜在的危险动作,或是向他们提供额外的选项,但您一定要避免过度使用这些视图,这是因为:
所有类型的模式视图都会中断用户的工作流程。
过度频繁地出现请求确认的视图很可能会适得其反,它们想要带给用户的帮助反而变成了打扰。
特别地,应该尽量少使用警告。如果警告出现得过于频繁,用户很可能为使自己免受它们的打扰,不经阅读就关闭这些警告。
警告,动作表单和模式视图的设计目的在于传递不同的信息:
警告为用户提供影响他们使用应用程序(或设备)的重要信息。警告通常是不可预料的,因为它们一般会向用户报告某个问题或当前环境的变化,这可能需要用户采取相应的行动。
动作表单为用户提供与他们当前执行的动作相关的额外选项。当用户点击一个工具栏按钮,开始执行一个具有潜在破坏性的动作(比如删除所有最近的通话)或是一个可以以不同的方式完成的动作(比如用户可以从多个目的地中指定其中一个作为发送动作的目的地)时,他们会期待动作表单的出现。
模式视图能够在当前任务的环境下提供更广泛的功能。对于那些与用户的工作流程直接相关的子任务,模式视图还能够提供执行这些子任务的方法。
这几种类型的视图在外观和行为上也各不相同,这也强调了它们向用户传递的消息不同。由于用户已经习惯了这些视图的外观和行为,所以您一定要在应用程序中正确地,一致地使用这些视图。请阅读下面的章节来了解更多有关警告,动作表单和模式视图的信息。
使用警告
警告会在应用程序屏幕的中间弹出并浮在应用程序的视图之上,以具有高可视性的方式向用户提供关键信息。其特别的外观强调的是,警告的出现是由于应用程序或设备中的一些变化,而未必是用户最近执行的动作所产生的结果。警告应该显示文本信息来说明当前的情况,在理想情况下,还应该允许用户为下面的操作选择适当的动作。
用户对于设备和后台运行的内置应用程序所发出的警告已经习以为常,比如消息应用程序,但是您还是应该少在应用程序中使用这样的警告。例如,您可能会使用警告告诉用户,他们启动的任务被阻塞了。采用警告显示这类消息是有道理的,因为告诉用户问题所在并让他们来选择如何处理是非常重要的。
您也可以使用警告让用户有机会选择接受或拒绝一种具有潜在危险的结果。当出现这种情况时,警告应该显示两个按钮:一个用于关闭该警告并执行动作,另一个用于关闭该警告但不执行动作。通常,应该为关闭警告但不执行动作的按钮使用“取消”作为标签。请注意,如果当显示这样的警告时,用户按下Home键,那么除了退出应用程序之外,其结果应该与点击“取消”按钮相同:即关闭警告但不执行动作。
那些很少出现的警告能够让用户认真地对待它们。因此,一定要尽量减少应用程序中显示的警告的数量,要确保每一个警告都提供了关键信息和有用的选项。一般情况下,应该尽量避免创建这些警告:
将正常进行中的任务的最新消息通知用户。
相反,您应该考虑使用进度视图或活动指示器,向用户提供与进度相关的反馈信息(“进度视图”和“活动指示器”介绍了这些控件)。
请求确认用户发起的动作。
如果要确认用户发起的动作,即使是删除联系人这种具有潜在危险性的动作,您应该使用的是动作表单(在下面的“使用动作表单”中介绍)。
通知用户令他们无法操作的错误或问题。
即使有必要使用警告来告诉用户出现了他们无法修复的关键问题,但如果可能的话,更好的做法是将这些信息融入到用户界面中。例如,与其在每次连接服务器失败时都通知用户,不如在用户界面上显示上一次成功连接服务器的时间。
使用动作表单
当用户通过点击应用程序的工具栏上的按钮发起了一项任务,动作表单显示一组与该务相关的可选方案。动作表单适合于:
选择完成任务的方法。例如,在照片应用程序中,用户可以在浏览单独的一张照片时点击“发送”按钮。这时会出现一个动作表单,有三个发送目的地供用户选择(还有一个“取消”按钮,用于取消发送)。
在类似这样的情况下,显示动作表单十分有用,因为您可以提供一系列在当前任务环境下有意义的选项,而无需在用户界面中为这些选项保留一片固定的区域。
在完成一项具有潜在危险性的任务之前获得用户的确认。例如,根据邮件应用程序的设置,当用户点击 “邮件”工具栏上的“垃圾邮件”按钮时,会显示一个动作表单,允许他们选择继续进行删除还是取消该动作。
当您在类似的情况下显示动作表单时,要确保用户了解他们将要执行的步骤能够带来的危险后果,并且您可以提供一些可选的方案。在iPhone OS设备上,这种类型的交互是非常重要的,因为用户有时会无意中点击控件。
动作表单总是从应用程序屏幕的底部出现,覆盖应用程序的视图(如图7-1中的左图所示)。然而,与警告不同的是,动作表单的侧边缘固定在屏幕的两侧,增强了它与应用程序和用户最近动作的联系。
动作表单包含一些按钮,让用户选择如何完成他们的任务。您不应该向动作表单中添加消息,因为按钮标签—再联系当前正在执行的任务—应该已经为用户提供了足够多的环境信息,帮助他们理解这些选项的含义。当用户点击其中一个按钮时,动作表单就会消失。由于动作表单为用户提供动作的选项,因此它一定会提供不止一个按钮。
使用模式视图
默认情况下,模式视图会从屏幕的下边缘滑出,并且始终覆盖在整个应用程序的屏幕之上(如图7-1中位于中间的图片所示)。由于模式视图隐藏了当前的应用程序屏幕,因此它使用户明确感知到自己进入了一种不同的,临时的模式,他们可以在这种模式中完成一些任务。
模式视图可以在适当的情况下显示文本,并且可以包含执行任务所必需的控件。此外,模式视图通常会显示一个用于完成任务并关闭视图的按钮,以及一个用于放弃任务的“取消”按钮。
相比于动作表单,模式视图支持更广泛的用户交互。不像动作表单只能接受单一的选项,模式视图支持多重步骤的用户交互,比如多项选择或信息输入。
当您需要实现一项与应用程序的主功能相关的独立任务时,请使用模式视图。有的用户界面元素无法始终属于应用程序主用户界面,模式视图尤其适合于需要这种用户界面元素的多步骤子任务。邮件应用程序中的撰写邮件视图就是一个使用模式视图的好例子。当用户点击“撰写邮件”按钮时,会出现一个模式视图,包含填写地址和消息的文本区,用于输入的键盘,一个“取消”按钮和一个“发送”按钮。
设计警告
您可以指定警告中的文本,按钮的数量和按钮的内容,但是您不能定制警告本身的宽度,背景外观以及文本的对齐方式(它是中心对齐的)。
注意: 当您阅读这些准则时,应该了解以下定义:
标题大写 指每个单词都大写,除了冠词,并列连词和四个或更少字母的介词。
句子大写 指第一个单词大写,其余的单词都小写,除非它们是专有名词或专有形容词。
警告的标题(以及可选的消息)应该简明扼要地说明相关的情况,并且告诉用户可以做些什么。理想情况下,您写的文本应该向用户提供足够的背景信息,使他们明白为什么会出现警告并决定点击哪个按钮。
当您撰写警告标题时:
请保持标题足够简短,如果可能的话,尽量显示在一行之内。长的警告标题对于人们来说难以快速阅读,并且可能会导致警告消息滚动显示。
避免创建仅包含一个单词的标题,它无法提供任何有用的信息,比如“错误”或“警告”。
推荐使用句子片段。一个简短且内容丰富的说明往往比一个完整的句子更容易理解。
不要害怕负面消息。人们能够理解大部分警告是在告诉他们出现的问题,或是在向他们发出有关危险情况的警告。因此,直接的负面消息远比拐弯抹角的正面消息要好得多。
尽量不要使用“你”,“你们”或“我”。有时候,直接指明人物对象的文本可能会引起歧义,甚至可能会被理解为一种侮辱。
使用标题式的大写方式且不要使用结束标点,如果:
标题是一个句子片段
标题由一个非疑问句的单句组成
如果标题由一个疑问句单句组成,请使用句子式的大写方式和结束问号。在一般情况下,请考虑使用疑问句作为警告的标题,如果这样可以让您避免增加一条额外的消息。
如果标题由两个或更多的句子组成,请使用句子式的大写方式,并且为每个句子添加适当的结束标点。实际上,很少有必要使用包含两个句子的警告标题,虽然您可能认为它可以让您避免一条额外的警告消息。
如果您选择提供警告消息:
请保持消息足够简短,如果可能的话,尽量显示在1-2行之内。如果消息太长,将需要滚动显示。
始终使用句子式的大写方式和适当的结束标点。警告消息应该是一个完整的句子。
避免在您的警告文本避免描述点击哪个按钮, 比如“点击‘视图’查看信息”。理想情况下,清晰的警告文本和合乎逻辑的按钮标签向用户提供了足够的信息来了解当前的情况和他们的选择。当然,如果您必须提供详细的指南,请遵循以下原则:
一定要使用单词“tap”(而不是“touch”,“click”或“choose”)来描述选择动作.
不要将按钮标题括在引号之内,但要保留其大写方式。
一定要测试您的警告在两个方向上的外观。 在横向上,由于警告的高度受到限制,它可能看起来和在纵向时不太一样。推荐您优化警告文本的长度,以便它在两个方向上的效果看起来都不错(避免滚动显示)。
推荐使用具有两个按钮的警告。 通常具有两个按钮的警告是最实用的,因为在两者之间做出选择对用户来说是最容易的。显示只有单个按钮的警告并不是一个好主意,因为这样的警告无法让用户控制当前的局势;相反,它只能显示信息并提供一个关闭按钮。与具有两个按钮的警告相比,包含三个或以上按钮的警告明显更加复杂,因而应该尽量避免使用这样的警告。事实上,如果您需要向用户提供两种以上的选择,您应该考虑使用动作表单来代替警告(更多与这种类型的视图相关的信息请参考 “使用动作表单”和 “设计动作表单”)。
适当地使用警告按钮的颜色。 警告按钮或是暗色的,或是亮色的。在具有两个按钮的警告中,左边的按钮总是暗色的,而右边的按钮总是亮色的。在具有单个按钮的警告中,按钮总是亮色的。
在指出潜在危险动作的双按钮警告中,取消动作的按钮应该位于右边,而且是亮色的。
在指出人们所期望的安全动作的双按钮警告中,取消动作的按钮应该位于左边(因此它应该是暗色的)。
注意: “取消”按钮既可能是亮色的也可能是暗色的,既可能在右边也可能在左边,这取决于该选择是否具有破坏性。一定要在您的代码中正确识别哪个按钮是“取消”按钮。
为警告按钮提供简短并合乎逻辑的标题。 最好的标题应该由1-2个单词组成,并且这些单词在警告文本的上下文环境中是合理,有意义的。当您为警告按钮创建标题时,请遵循如下准则:
和所有的按钮标题一样,请使用标题式的大写方式,且不要使用结束标点。
推荐使用动词和动词短语,比如与警告文本直接相关的“取消”,“允许”,“回复”和“忽略”。
如果没有更好的选择,推荐使用“确定”作为简单的接受选项。避免使用“是”或“否”。
尽量不要使用“你”,“你们”和“我”。使用这些单词的按钮标题往往既容易产生歧义又显得缺乏尊重。
设计动作表单
您可以选择动作表单的背景,使其与您的应用程序的外观是一致的,您也可以指定按钮的数量和按钮上的内容。
与警告不同的是,动作表单不应该显示文本信息。这是因为动作表单是作为用户动作的结果出现的,比如点击“删除”或“发送”按钮,因此没有必要解释它为什么出现。
动作表单可以有两种不同背景的外观。您需要确保动作表单的背景与应用程序的工具栏或导航栏的外观是一致的。例如,如果您的应用程序使用黑色的导航栏和工具栏,则动作表单的背景应该是半透明黑色的。默认情况下,iPhone OS在显示动作表单时采用标准的蓝色背景,这与标准的蓝色工具栏和导航栏是一致的。您的应用程序中的所有动作表单应具有相同的背景颜色,并且应该与导航栏和工具栏的颜色一致。
一定要将“取消”按钮显示在动作表单的底部。这样能够促使用户在看到“取消”选项之前通读所有的候选项。
图7-2中所示的动作表单具有默认的背景外观,而且“取消”按钮被放置在推荐的位置上。
图 7-2 一个典型的动作表单
如果您需要提供一个按钮来执行具有潜在破坏性的动作,比如删除用户购物清单上的所有条目,那么按钮的颜色应该采用红色。这样的破坏性按钮一定要显示在动作表单的顶部,这一点至关重要,原因有两个:
一个按钮越是靠近动作表单的顶部,它的可视性就越强。
当用户想要点击Home按钮时,有时他们会误点击设备屏幕的底部。所以不要将具有破坏性的按钮放置在动作表单的底部,这样因用户的误操作引发不良后果的可能性就会比较小。
图 7-3中所示的动作表单具有半透明的黑色背景外观,而且“取消”按钮和破坏性按钮都被放置在了推荐的位置上。
图 7-3 执行破坏性动作的按钮应该是红色的,并且要位于动作表单的顶部
您可以在动作表单中显示多个按钮,只要确保每个按钮都能很容易地与其它按钮区分开来。图7-4显示了一个动作表单,其背景与标准的蓝色工具栏相匹配,并且除“取消”按钮之外,它还提供了三个可选的按钮。
图 7-4 具有四个按钮的动作表单
设计模式视图
模式视图的整体外观应该与显示它的应用程序是一致的。例如,模式视图通常包含一个导航栏,导航栏具有标题和用于取消或完成模式视图任务的按钮。该导航栏应该与应用程序的导航栏具有相同的背景外观。
模式视图通常应该显示一个以某种方式标识任务的标题。如果合适的话,您还可以在视图的其它区域显示文本,来更充分地描述任务信息或提供一些指导。例如,消息应用程序在用户想要撰写文本消息时提供了一个模式视图。如图7-5所示,该模式视图显示了一个导航栏,它与应用程序的导航栏背景相同,标题为“新消息”。
图 7-5 模式视图应该与应用程序屏幕保持一致
在模式视图中,您可以使用完成任务所需的任何控件。例如,您可以在视图中包含文本域,按钮和表视图。
您可以根据您的应用程序选择显示模式视图的方式,增强用户对该视图所表现的临时环境转换的感知。为了做到这一点,您可以指定以下切换风格中的一种:
垂直 模式视图从屏幕的下边缘滑出,视图关闭时则向下滑动直到消失。(这是默认的切换风格。)
翻转 当前视图从右向左水平翻转来显示模式视图。在视觉上,模式视图看起来好像是当前视图的背面。当模式视图关闭时,它会从左向右水平翻转来显示先前的视图。
如果您决定更改应用程序中模式视图的切换风格,请不要仅仅为了追求多样化而这样做。您要意识到用户会认为这种差异意味着别的含义。因此,最好建立一个具有逻辑性和一致性的模式,使用户可以轻松地觉察到并记住,避免使切换风格发生不必要的改变。