iPhone人机界面常见任务处理方法,处理常见任务
分类:关于美高梅

iPhone人机界面常见任务处理方法是本文要介绍的内容,如果您具有使用桌面计算机或便携式计算机应用程序的经验,那么您会发现iPhone应用程序处理很多常见任务的方式与它们不同。本节从人机界面的角度描述了这些常见任务;关于代码实现的技术细节,请参考iPhone应用程序编程指南。

美高梅网址 1

启动

如果您具有使用桌面计算机或便携式计算机应用程序的经验,那么您会发现iPhone应用程序处理很多常见任务的方式与它们不同。本节从人机界面的角度描述了这些常见任务;关于代码实现的技术细节,请参考iPhone应用程序编程指南。

       近日读了郎启旭翻译的《iOS人机界面准则》,首先对其翻译表示感谢。个人感觉从产品设计和具体开发上还是有很多内容可以借鉴,去掉我认为的常识部分和目前对我而言不是特别重要的部分,整理摘抄部分笔记如下,一来可以用作记录,二来可以和大家分享一下。

表格视图,文本视图和web视图是具有多种功能的界面元素,它们在iPhone应用程序中有着不同的用途。例如,表格视图可以用来显示简短的选项列表,详细信息的分组列表或者长的项目索引列表。文本视图和web视图相对来说可以不受约束地接受和显示内容。

iPhone应用程序应能够迅速启动,从而用户可以立即开始使用它们。启动时,iPhone应用程序应该:

启动

一、依从(Deference)。

 

指定适当的状态栏样式关于可用样式的信息请参考“状态栏”一节)。

iPhone应用程序应能够迅速启动,从而用户可以立即开始使用它们。启动时,iPhone应用程序应该:

1、用户界面(UI)应当有助于用户理解内容并与之互动,而非对抗。

表格视图

显示一幅酷似应用程序初始屏幕的启动图像。这减少了用户感知到的应用程序的启动时间。要了解更多有关的信息,请参考“启动图像”。

指定适当的状态栏样式(关于可用样式的信息请参考“状态栏”一节)。

2、充分利用整块屏幕。重新考量对插图和视觉框架的使用,可以考虑 让内容扩展到屏幕边缘。「天气」就是一个很好的范例:漂亮的全 屏界面非常直观地呈现出某个地点当前天气的关键信息,而且还有 多余空间可以显示每个小时的天气数据。

表格视图通过多行单列的表格呈现数据。行可以被分为不同的段或组,每一行可以包含文本,图像和控件的组合。用户可以以轻击或拖动的方式来滚动行或行的分组。图8-1显示了不同样式的表格视图,它们以不同的方式显示列表。

避免显示“关于”窗口,启动画面,也不要提供任何其他类型的妨碍用户立即使用应用程序的体验。

显示一幅酷似应用程序初始屏幕的启动图像。这减少了用户感知到的应用程序的启动时间。要了解更多有关的信息,请参考“启动图像”。

美高梅网址 2

图 8-1  使用表格视图显示列表的三种方式

默认情况下,在屏幕上纵向启动应用程序。如果您打算让应用程序只能在屏幕横向时使用,则无论设备当前的方向如何,都在屏幕上横向启动应用程序。如果必要的话,要允许用户将设备旋转为横向。

避免显示“关于”窗口,启动画面,也不要提供任何其他类型的妨碍用户立即使用应用程序的体验。

天气

美高梅网址 3

仅横向显示的应用程序应该支持两种“横向”—不论“主页”按钮在屏幕右侧还是左侧,都能够正常显示应用程序。如果设备本身已经被横向放置,则这种仅横向显示的应用程序就按照设备的方向启动。否则,在默认情况下,仅横向显示的应用程序在启动时,“主页”按钮只能在应用程序的右方。

默认情况下,在屏幕上纵向启动应用程序。如果您打算让应用程序只能在屏幕横向时使用,则无论设备当前的方向如何,都在屏幕上横向启动应用程序。如果必要的话,要允许用户将设备旋转为横向。

3、重新考量模拟现实的视觉表现。浮雕、渐变和阴影效果有时会让界 面元素变得沉重,进而喧宾夺主。相反,要突出内容并让界面扮演 一个辅助性的角色。

 

将您的应用程序恢复到最后一次运行时的状态。

仅横向显示的应用程序应该支持两种“横向”—不论“主页”按钮在屏幕右侧还是左侧,都能够正常显示应用程序。如果设备本身已经被横向放置,则这种仅横向显示的应用程序就按照设备的方向启动。否则,在默认情况下,仅横向显示的应用程序在启动时,“主页”按钮只能在应用程序的右方。

美高梅网址 4

用法和行为

重要:不要在您的应用程序安装完成后提示用户重新引导或重新启动他们的设备。如果您的应用程序存在内存使用或其他方面的问题,导致除非系统是刚刚启动过的,否则您的应用程序难以运行,那么您需要解决这些问题。例如,您可以阅读iPhone应用程序编程指南中的“高效地使用内存”一节,了解如何开发运转良好的应用程序。

将您的应用程序恢复到最后一次运行时的状态。

地图

表格视图在iPhone应用程序中非常有用,因为无论是信息量的多少,它们都提供了组织信息的有效方式。尽管实用型应用程序也可以小范围的使用表格视图,但表格视图通常在需要处理大量用户数据的效率型应用程序中最为有用。沉浸式应用程序一般不会使用表格视图来显示信息,但是它可能会使用表格视图来显示简短的选项列表。

停止

重要:不要在您的应用程序安装完成后提示用户重新引导或重新启动他们的设备。如果您的应用程序存在内存使用或其他方面的问题,导致除非系统是刚刚启动过的,否则您的应用程序难以运行,那么您需要解决这些问题。例如,您可以阅读iPhone应用程序编程指南中的“高效地使用内存”一节,了解如何开发运转良好的应用程序。

4、使用系统字体以确保易读性。iOS 7 的系统字体能够自动调整字间 距和行高, 这会让文本内容易于阅读, 且在任意字号下都显示良 好。无论你是使用系统字体还是自定义字体,请确保使用「动态字 体」(Dynamic Type),这样在用户选择不同的字号时你的 app 可以作出响应。

表格视图提供了允许用户浏览和操作信息的内置界面元素。此外,表格视图还支持:

当用户打开另一个应用程序或使用设备自身功能比如电话)时,iPhone应用程序必需终止。要特别注意的是,应用程序的终止不需要用户点击应用程序关闭按钮或在菜单上选择“退出”操作。iPhone应用程序应该:

 

二、启动和停止

显示页眉和页脚信息。您可以在列表中每一段或一组的上方或下方显示描述文本,也可以在整个列表的上方或下方显示描述文本。

随时准备接收退出或终止通知。因此,要尽可能快并且在合理情况下经常保存用户数据。

停止

1、避免要求用户提供设置信息,代之以:

编辑列表。您可以允许用户以统一的方式对列表项进行添加,删除或排序等操作。表格视图还支持对多个列表项的选择和操作,您可以利用这一点向用户提供一种能够同时删除多个列表项的便捷方法。

当应用程序终止时,尽可能详细地保存它的当前状态。例如,如果您的应用程序能够显示滚动的数据,则应该保存当前的滚动位置。

当用户打开另一个应用程序或使用设备自身功能(比如电话)时,iPhone应用程序必需终止。要特别注意的是,应用程序的终止不需要用户点击应用程序关闭按钮或在菜单上选择“退出”操作。iPhone应用程序应该:

关注 80% 用户的需求。这样,大部分用户不需要进行任何设置,因为你的 app 已经按他们期望的方式设置好 了。如果有一些功能只有极少数用户可能需要或者大部分用户只会用一次,请抛弃这样的功能。

当用户选择一个列表项时,表格视图应该提供反馈信息。如果一个列表项可以被选中,则当用户选择该项时,包含该项的行应该暂时高亮显示,以此向用户反馈已收到用户的选择。然后,立即执行动作:要么显示一个新的视图,要么在这一行显示一个复选标记来表明该项已被选中或启用。

iPhone应用程序不应该直接通过代码退出,因为这样做会使用户觉得应用程序崩溃了。但是,可能有些时候,外部环境会阻止您的应用程序正常运行。处理这种情况的最好方法是让屏幕显示醒目的内容,在屏幕上描述该问题并向用户提出解决问题的建议。这样做会在以下两方面对用户有所帮助:

随时准备接收退出或终止通知。因此,要尽可能快并且在合理情况下经常保存用户数据。

尽可能通过其他方式获取信息。如果你可以使用任何内置程序或设备中用户所提供的信息,那就从系统中获取 这些信息,而不要让用户再输一次。

在极少数情况下,当与该行中的项相关的附加详细信息或控件显示在同一屏上时,该行可能会继续高亮显示。但是,并不鼓励这样做,因为要在屏幕上同时显示选项列表,被选中的项和相关的详细信息或控件,很容易造成布局拥挤,令用户感到不适。

它提供了反馈信息,告诉用户您的应用程序没有出现错误,使用户放心。

当应用程序终止时,尽可能详细地保存它的当前状态。例如,如果您的应用程序能够显示滚动的数据,则应该保存当前的滚动位置。

如果你确实需要提供设置信息,请让人们在你的 app 中输入。然后,尽快存储这些信息(例如,在你 app 的 设置中)。这样一来,在有可能体验到你 app 的乐趣前人们不会被迫切换到 iOS 的「设置」中了。如果人们 将来需要修改这些信息,可以在任何时间前往 app 的设置页面进行修改。

如果选中某一行的结果是导航到新的屏幕上,那么被选中的行会在新的屏幕滑动到相应位置之前高亮显示。当用户返回到先前的屏幕时,原来被选中的行会再次高亮显示一下,提示用户他们之前的选择。

它能够控制用户行为,让他们决定是采取一些纠正的行动来继续使用您的应用程序,还是按下“主页”按钮来打开另一个应用程序。

iPhone应用程序不应该直接通过代码退出,因为这样做会使用户觉得应用程序崩溃了。但是,可能有些时候,外部环境会阻止您的应用程序正常运行。处理这种情况的最好方法是让屏幕显示醒目的内容,在屏幕上描述该问题并向用户提出解决问题的建议。这样做会在以下两方面对用户有所帮助:

尽可能将登录延后。最好在用户没有登录时就可以通过导航来浏览你的 app 并使用部分功能。用户在在可以做点有 用的事情前通常已经从那些强制他们登录的 app 中离开了。

请注意,您也可以以动画的方式展现用户对列表项的更改。这样做有利于向用户提供反馈信息和增强用户的直接操作体验。例如,在设置应用程序中,当您关闭自动设置日期和时间时(在“日期和时间” > “自动设置”中选择关闭),列表分组会平滑地展开,显示两个新的列表项,“时区”以及“设置日期和时间”。

如果在一些特定的环境中,您的应用程序只是部分功能无法正常工作,那么在用户想要激活该功能时,您可以在屏幕上显示信息或警告。虽然警告在设计上不具备太大的灵活性,但如果您可以保证以下几点,它也可以成为一种很好的选择:

它提供了反馈信息,告诉用户您的应用程序没有出现错误,使用户放心。

一般来说,以设备的默认方向启动。在 iPhone 上,其默认方向是竖屏;在 iPad 上,则是设备当前的方向。如果你 的 app 只支持横屏,你应该始终以横屏方式启动,然后让用户在需要时旋转设备。

表格视图应该立即显示其内容。如果表格的内容繁多或者十分复杂,请不要一直等到所有的数据都可用时才显示它们。相反,应该立即使用文本数据填充屏幕上可见的行,当更复杂的数据(比如图像)可用时再显示它们。这种技术能够马上为用户提供有用的信息,并且提高了您的应用程序的响应能力。

非常简洁地描述当前情况

它能够控制用户行为,让他们决定是采取一些纠正的行动来继续使用您的应用程序,还是按下“主页”按钮来打开另一个应用程序。

2、iOS 应用永远不会显示一个「关闭」或「退出」选项。人们退出一个 app 的方式就是切换到另一个 app、返回主屏 幕或者让设备进入睡眠模式。

如果您的应用程序要显示的数据很少发生变化,您可以考虑在新的数据可用之前显示那些实际上已经“过期的”数据。这种技术也能够让用户马上看到有用的信息,但不推荐那些数据频繁变化的应用程序也这样做。在您决定这样处理之前,一定要估计数据变化的频率和用户对迅速看到新数据的期待程度。

提供一个执行纠正动作的按钮

 

当人们从你的 app 切换离开,iOS 的多任务处理会将其挂到后台,并切换到新 app 的界面中。为了应对这种情况, 你应当:

如果很难立即显示有用的信息,也一定要避免显示空行,因为这会给用户造成“应用程序已经出现问题而终止”的错误暗示。相反,表应该在屏幕中心显示一个旋转的活动指示符和一条信息标签,比如“加载中...”。如果您可以显示旧的数据,您就不必担心空行的问题,但是您应该在获得新数据后立即更新屏幕上的信息。这两种技术都为用户提供了反馈信息,让他们知道应用程序的处理正在进行当中。

仅当用户试图访问无法正常工作的功能时显示警告

 

尽快并尽可能频繁地在合理范围内存储用户数据。这样做是因为处于后台的 app 随时都有可能被退出或结束。

表格视图样式

和所有的警告一样,用户越少看到它们,就说明它们越有效。关于创建警告的更多信息请参考“使用警告”。

如果在一些特定的环境中,您的应用程序只是部分功能无法正常工作,那么在用户想要激活该功能时,您可以在屏幕上显示信息或警告。虽然警告在设计上不具备太大的灵活性,但如果您可以保证以下几点,它也可以成为一种很好的选择:

当 app 停止时,尽可能最多地保存当前状态的细节。这样的话,当人们切换回来时就不会失去之前所处的情 境。例如,如果你的 app 有显示     可滚动的数据,那在停止时要保存当前所处的滚动位置。你可以前往「State Preservation and Restoration」了解更多关于高效重建和恢复 app 状态的方式。

iPhone OS定义了两种样式的表格视图,它们的区别主要在于外观:

管理设置或配置选项

非常简洁地描述当前情况

3、永远不要以程序化的方式自动退出一个 iOS app;

无格式样式(
UITableViewStylePlain
)这种视图样式所显示的行从屏幕一侧的边缘延伸至另一侧的边缘。行的背景是白色的。每一行可以被分成带标签的段,并且可以在视图的右边缘垂直地显示一个可选的索引。

iPhone应用程序可以向用户提供设置功能,使用户可以根据自己的喜好来设置应用程序行为或配置选项,从而改变应用程序的一些功能。可设置的应该是一些用户设置一次后很少如果有的话)改变的信息,比如帐户名称。用户可以在内置的“设置”程序中查看特定应用程序的设置。配置选项是一些用户可能想要经常改变的值,比如在列表中显示的分类的类型;配置选项应该由应用程序本身提供。

提供一个执行纠正动作的按钮

4、如果所有的功能都不可用,就向用户展示一个界面去描述问题并建 议用户如何纠正。这能给用户一种反馈,让他们觉得你的 app 并 没有出错。这也会赋予用户以控制感,让他们来决定是采取纠正措 施并继续使用你的 app,还是切换到另一个 app。

图8-2显示了iPod应用程序中的一个无格式样式的列表(没有页眉,页脚和索引)。

您应该把设置和配置选项看作是互斥的。也就是说,您不应该在您的应用程序中同时提供设置和配置选项。

仅当用户试图访问无法正常工作的功能时显示警告

美高梅网址 5

Figure 8-2  一个简单的无格式样式的列表

iPhone应用程序最好不要求用户指定任何设置。这样用户无需提供设置信息就可以立即使用这些应用程序。为了在您的应用程序中实现这一点,您可以采用以下这些设计决策:

和所有的警告一样,用户越少看到它们,就说明它们越有效。关于创建警告的更多信息请参考“使用警告”。

所有功能不可用反馈

美高梅网址 6

使您的解决方案满足80%用户的需求。当您采用这样的设计时,大多数用户不需要提供设置信息,因为您的应用程序已经按照大部分用户所预期的行为进行了设置。可以不考虑那些只有少数用户需要的功能和大部分用户仅需使用一次的功能。

管理设置或配置选项

如果只有部分功能不可用,那在用户用到这些功能时提供解释界面 或者提示。这样的话,人们还可以使用 app 的其他功能。如果你 决定使用警告框,请确保只在用户尝试使用不可用的功能时展示。

分组样式(
UITableViewStyleGrouped
)这种视图样式显示行的分组,每组表格行会相对屏幕两侧缩进。这些分组显示在独特的垂直条纹背景下,而分组内部的背景则是白色的。分组样式的表格可以包含任意数量的分组,每一个分组可以包含任意数量的行。在每一组之前可以加入页眉文本,其后可以加入页脚文本。这种样式的表格视图不提供索引。

从其他途径获取尽可能多的信息。如果您可以用到任何用户在内置应用程序或设备设置中提供的信息,那么您可以向操作系统查询这些信息的值;不要让用户再次输入它们。

iPhone应用程序可以向用户提供设置功能,使用户可以根据自己的喜好来设置应用程序行为或配置选项,从而改变应用程序的一些功能。可设置的应该是一些用户设置一次后很少(如果有的话)改变的信息,比如帐户名称。用户可以在内置的“设置”程序中查看特定应用程序的设置。配置选项是一些用户可能想要经常改变的值,比如在列表中显示的分类的类型;配置选项应该由应用程序本身提供。

美高梅网址 7

图8-3显示了一个分组样式的列表,其中每个分组均包含一行。该列表出现在设置应用程序中,不包含页眉或页脚文本。

如果您必须向用户请求设置信息,请在应用程序内部提示用户输入信息。然后立即将这一信息存储在您的应用程序的设置中。这样,用户在开始使用您的应用程序之前,就不会被迫退出应用程序而先打开“设置”界面。如果用户稍后需要更改这些信息,他们可以随时在您的应用程序的设置中进行更改。

您应该把设置和配置选项看作是互斥的。也就是说,您不应该在您的应用程序中同时提供设置和配置选项。

局部功能不可用提示

图 8-3  一个包含四个分组的,具有分组样式的列表

如果用户想要打开“设置”程序,就必须首先退出您的应用程序,而您应该不鼓励用户采取这样的行为。系统并没有提供支持这一行为的图标或控件,而且建议您也不要为此创建自定义的图标或控件。如果您决定一定要在您的iPhone应用程序中提供设置,请参考iPhone应用程序编程指南中的“设置程序包”一节,了解如何在您的代码中实现对这些功能的支持。

iPhone应用程序最好不要求用户指定任何设置。这样用户无需提供设置信息就可以立即使用这些应用程序。为了在您的应用程序中实现这一点,您可以采用以下这些设计决策:

三、布局

美高梅网址 8

注意:应用程序特定的设置不应该包括用户帮助的内容。

使您的解决方案满足80%用户的需求。当您采用这样的设计时,大多数用户不需要提供设置信息,因为您的应用程序已经按照大部分用户所预期的行为进行了设置。可以不考虑那些只有少数用户需要的功能和大部分用户仅需使用一次的功能。

1、给每个交互元素以足够的间距,以便用户对内容和控件进行操作。可点击控件的点击区域不小于 44 x 44 点。

单元格样式

与设置不同,由于用户会选择从新资源或以不同布局来查看信息,因此配置选项很可能经常发生改变。对于这些选项所做的更改,您可以动态地作出响应,因为用户不需要离开您的应用程序来访问它们。

从其他途径获取尽可能多的信息。如果您可以用到任何用户在内置应用程序或设备设置中提供的信息,那么您可以向操作系统查询这些信息的值;不要让用户再次输入它们。

美高梅网址 9

iPhone OS 3.0及后续版本中包含了四种预定义的单元格样式,您可以使用它们快速,方便地为无格式样式和分组样式的表格行创建常用的布局。请注意,从编程角度而言,这些样式是应用在表格视图的单元格上的,单元格规定了表格应该如何绘制各行。

您可以在主用户界面屏幕的背面提供配置选项。具体使用哪一种技术更合理取决于该选项代表的是不是主要功能以及用户对其进行更改的频率。

如果您必须向用户请求设置信息,请在应用程序内部提示用户输入信息。然后立即将这一信息存储在您的应用程序的设置中。这样,用户在开始使用您的应用程序之前,就不会被迫退出应用程序而先打开“设置”界面。如果用户稍后需要更改这些信息,他们可以随时在您的应用程序的设置中进行更改。

交互元素尺寸

当您使用标准单元格样式时,您的应用程序的风格会与内置应用程序保持一致,这将在以下几个方面使您获益:

例如,“日历”程序允许用户以日,星期和月为单位查看他们的时间表。这些选项本来可以在屏幕的背面提供给用户,但是查看日历的不同部分是程序的主要功能,并且用户可能会频繁改变所关注的焦点。

如果用户想要打开“设置”程序,就必须首先退出您的应用程序,而您应该不鼓励用户采取这样的行为。系统并没有提供支持这一行为的图标或控件,而且建议您也不要为此创建自定义的图标或控件。如果您决定一定要在您的iPhone应用程序中提供设置,请参考iPhone应用程序编程指南中的“设置程序包”一节,了解如何在您的代码中实现对这些功能的支持。

2、将重要内容和功能放到更重要的位置,以便用户可以更容易地关注主要任务。一些可行的方法是,将主要元素放置在 屏幕的上半部分,并靠近屏幕左侧(基于从左至右的阅读习惯);

用户可以更快地了解您的应用程序如何工作

再举一个例子,“天气”程序的主要功能是显示一个城市的当前天气状况和6天之内的天气预报。虽然让用户能够选择是以摄氏还是华氏为单位显示温度也很重要,但是用户不太可能经常改变这个选项,因此,将它放在主用户界面中并不合理。在“天气”屏幕的背面提供温标选项,就显得既方便又不突兀。

注意:应用程序特定的设置不应该包括用户帮助的内容。

3、尽可能避免在界面中出现不一致的样式。通常来说,拥有相似功能的元素看上去也应该很像。用户常常会认为那些他 们所看到的不一致背后必定富有深意,然后花时间去理解它们。

如果今后标准单元格样式有所改进,您的应用程序可以轻松地保持一致,而无需付出大量的额外工作

支持复制和粘贴

 

四、导航

如果您想要以非标准的方式布置您的表格行,您最好创建一种自定义的单元格样式,而不是大刀阔斧地修改已有的标准样式。iPhone OS表格视图编程指南中的“自定义单元格”一节可以帮助您了解如何创建自己的单元格。

iPhone OS提供了编辑或粘贴板)菜单,它支持在文本视图,Web视图和图像视图中的“剪切”,“复制”,“粘贴”,“选择”和“全选”操作。一种向用户显示该菜单的方法是,首先用户触摸并按住设备屏幕直到出现放大的视图该视图允许用户将插入点或选择点移动到正确的位置),然后放开。如果当前的上下文支持这种菜单,则当用户抬起手指时它就会出现。菜单中的“选择”操作可以选择视图中的单词或应用程序定义的项。用户可以通过拖动当前所选区域的把手来扩大他们选择的内容。在内容被选中之后,菜单就会根据情况显示“剪切”,“复制”或“粘贴”。

与设置不同,由于用户会选择从新资源或以不同布局来查看信息,因此配置选项很可能经常发生改变。对于这些选项所做的更改,您可以动态地作出响应,因为用户不需要离开您的应用程序来访问它们。

1、永远要让用户知道自己正处于应用中的什么位置,并清楚如何去往他的下一个目标。

请注意,在所有的单元格样式中,文本都会被自动截断。一般来说,您应该确保您的文本尽可能简洁,避免显示出用户难以理解的被截断的单词或词组。具体来讲,文本截断是个可大可小的问题,这取决于您使用的单元格样式和截断发生的位置。

您可以调整编辑菜单的某些行为以适应您的应用程序。要了解更多关于如何用编码实现这些行为的信息,请参考iPhone应用程序编程指南中的“复制和粘贴操作”一节。)例如,您可以指定菜单中显示的操作,您可以改变菜单出现的位置。但是,您不能控制菜单本身的颜色和形状。

您可以在主用户界面或屏幕的背面提供配置选项。具体使用哪一种技术更合理取决于该选项代表的是不是主要功能以及用户对其进行更改的频率。

五、品牌化

iPhone OS提供下列标准单元格样式:

编辑菜单中可见的操作在当前上下文都是有意义的。例如,如果没有任何内容被选中,菜单中不会包含“复制”或“剪切”操作,因为这些操作要作用于被选中的内容。同样,如果有内容被选中,菜单则不包含“选择”操作。如果您要在一个自定义视图中支持编辑菜单,您应该确保菜单所显示的操作适用于当前上下文。请注意,您不能在菜单中显示自定义的操作。

例如,“日历”程序允许用户以日,星期和月为单位查看他们的时间表。这些选项本来可以在屏幕的背面提供给用户,但是查看日历的不同部分是程序的主要功能,并且用户可能会频繁改变所关注的焦点。

1、不要挤占人们所在意的内容的空间。

默认单元格样式(
UITableViewCellStyleDefault
)包含位于左侧的可选图像,后面紧跟左对齐的黑色文本标签。

UIKit会根据可用空间的大小,在插入点或被选中内容的上方或下方显示编辑菜单,并放置菜单指针,以便用户可以看到菜单操作是如何与当前内容相关联的。您可以通过编程的方式,在菜单出现之前决定它的位置,因此,在必要的情况下,您可以防止应用程序的用户界面中的重要部分被菜单遮住。

再举一个例子,“天气”程序的主要功能是显示一个城市的当前天气状况和6天之内的天气预报。虽然让用户能够选择是以摄氏还是华氏为单位显示温度也很重要,但是用户不太可能经常改变这个选项,因此,将它放在主用户界面中并不合理。在“天气”屏幕的背面提供温标选项,就显得既方便又不突兀。

2、不要在整个 app 中处处展现你的标识。

图 8-4  分组表格(左)和无格式表格(右)中的默认单元格样式

请注意,虽然“触摸并按住”这个操作是向用户显示编辑菜单的主要方式,但是用户也可以通过双击文本视图中的一个单词来选中它,同时显示出菜单。如果您要在自定义视图中支持菜单,那么您应该对这两种操作都做出响应。此外,您可以定义在用户双击时默认被选中的对象。

支持复制和粘贴

六、颜色和字体

美高梅网址 10

如果一个按钮执行的是编辑菜单中已有的操作,则要避免创建这样的按钮。例如,要让用户执行复制操作的话,使用编辑菜单比向用户提供“复制”按钮更好,因为用户会很困惑,为什么在您的应用程序中要有两种方式来完成同样的事情。

iPhone OS提供了编辑(或粘贴板)菜单,它支持在文本视图,Web视图和图像视图中的“剪切”,“复制”,“粘贴”,“选择”和“全选”操作。一种向用户显示该菜单的方法是,首先用户触摸并按住设备屏幕直到出现放大的视图(该视图允许用户将插入点或选择点移动到正确的位置),然后放开。如果当前的上下文支持这种菜单,则当用户抬起手指时它就会出现。菜单中的“选择”操作可以选择视图中的单词或应用程序定义的项。用户可以通过拖动当前所选区域的把手来扩大他们选择的内容。在内容被选中之后,菜单就会根据情况显示“剪切”,“复制”或“粘贴”。

1、如果你要创建多种自定义颜色,请确保它们在一起会协调。

 

您可以启用对静态文本的选择,但是应该仅当静态文本显示对用户有用的内容时才这样做。例如,用户有可能想要复制一幅图像的标题,但是他们可能不想复制一个标签项或屏幕标题的标签,比如“帐户”。在文本视图中,默认应该是按单词选取的。

 

2、注意在不同情境下的颜色对比。例如,如果在导航栏背景和条栏按钮标题之间没有足够的对比,用户会很难看到这些 按钮。一个经验法则是,需要区分的颜色之间的对比度至少要达到 50%。在设备上查看颜色对比以测试效果,这要 在不同的光线情况中进行,包括晴天的户外。

文本标签代表一个表格项的名称或标题,而且其左对齐的格式使得列表很易于浏览。因此,默认样式非常适合于显示不需要根据附加信息加以区分的表格项列表。

按钮的标题应该是不可以被选中的,因为很难不触发按钮的点击事件并显示出编辑菜单。一般来说,具有按钮行为的元素不需要被选中。

您可以调整编辑菜单的某些行为以适应您的应用程序。(要了解更多关于如何用编码实现这些行为的信息,请参考iPhone应用程序编程指南中的“复制和粘贴操作”一节。)例如,您可以指定菜单中显示的操作,您可以改变菜单出现的位置。但是,您不能控制菜单本身的颜色和形状。

建议:一种发现需要更高对比度的区域的方式是,降低 UI 的饱和度并以灰度模式查看其显示效果。如果你在交互和 非交互元素或灰度版本的背景之间很难发现区别,你可能需要增加这些元素之间的对比。

最好使用简短的文本标签,但是如果文本截断无法避免,要尽量确保最重要的信息包含在前几个单词中。

如果您在自己的应用程序中支持“剪切”,“复制”和“粘贴”操作,您也应该支持撤销和重做在“支持撤销和重做”介绍)。这是因为编辑菜单不需要在动作执行前进行确认,而且如果用户改变了主意,他们总是希望能够撤销最近的操作。

编辑菜单中可见的操作在当前上下文都是有意义的。例如,如果没有任何内容被选中,菜单中不会包含“复制”或“剪切”操作,因为这些操作要作用于被选中的内容。同样,如果有内容被选中,菜单则不包含“选择”操作。如果您要在一个自定义视图中支持编辑菜单,您应该确保菜单所显示的操作适用于当前上下文。请注意,您不能在菜单中显示自定义的操作。

3、当你自定义条栏的颜色时,要将半透明的条栏和 app 内容考虑进去。如果你需要创建一个条栏颜色以匹配特定颜 色,例如当前品牌中的一个颜色,你可能需要试验许多颜色才能得到你想要的效果。条栏的外观同时受到 iOS 内置的 半透明效果和条栏背后的 app 内容的影响。

副标题单元格样式(
UITableViewCellStyleSubtitle
)包含位于左侧的可选图像,后面紧跟一行左对齐的文本标签,以及另一行位于文本标签下方的左对齐的详细信息文本标签。文本标签采用黑色字体,详细信息文本标签则采用较小的灰色字体。

支持撤销和重做

UIKit会根据可用空间的大小,在插入点或被选中内容的上方或下方显示编辑菜单,并放置菜单指针,以便用户可以看到菜单操作是如何与当前内容相关联的。您可以通过编程的方式,在菜单出现之前决定它的位置,因此,在必要的情况下,您可以防止应用程序的用户界面中的重要部分被菜单遮住。

4、要考虑色盲人群。大多数色盲用户很难区分红色和绿色。测试你的 app,确保你没有在任何地方将红色和绿色作为区 分两种状态或值的唯一方式(一些图像编辑软件有这样的工具可以帮助你验证色盲的情况)。通常,使用不止一种方 式去表示元素的交互性是一个不错的想法。

图 8-5  分组表格(左)和无格式表格(右)中的副标题单元格样式

iPhone OS在文本视图中为用户提供了撤销和重做的能力。用户通过摇晃设备发起撤销动作,设备会显示一个警告,允许用户撤销他们刚才的输入,重做先前未完成的输入或取消撤销操作。

请注意,虽然“触摸并按住”这个操作是向用户显示编辑菜单的主要方式,但是用户也可以通过双击文本视图中的一个单词来选中它,同时显示出菜单。如果您要在自定义视图中支持菜单,那么您应该对这两种操作都做出响应。此外,您可以定义在用户双击时默认被选中的对象。

5、考虑选择一个主题色以显示交互性和状态。内置 app 中的主题色包括「标签」的黄色和「日历」的红色。如果你要 定义一个主题色以显示交互性和状态,确保你的 app 中的其他颜色不会与之冲突。

美高梅网址 11

UIKit允许您在自己的应用程序中以一种更通用的方式支持撤销有关如何在代码中实现这一行为的信息,请参考撤销架构)。您可以指定:

如果一个按钮执行的是编辑菜单中已有的操作,则要避免创建这样的按钮。例如,要让用户执行复制操作的话,使用编辑菜单比向用户提供“复制”按钮更好,因为用户会很困惑,为什么在您的应用程序中要有两种方式来完成同样的事情。

6、避免在交互和非交互元素中使用相同的颜色。颜色是用户界面元素显示其交互性的一种方式。如果交互和非交互元素 用一样的颜色,那么用户会很难知道他们点的是哪里。

 

用户可以撤销和重做的操作

您可以启用对静态文本的选择,但是应该仅当静态文本显示对用户有用的内容时才这样做。例如,用户有可能想要复制一幅图像的标题,但是他们可能不想复制一个标签项或屏幕标题的标签,比如“帐户”。在文本视图中,默认应该是按单词选取的。

7、颜色增进沟通,但并不总是你所希望的方式。每个人看到的颜色都不同,而且在许多文化中人们对颜色的含义如何对 应也有所不同。花点时间去了解你所使用的颜色在其他国家和文化中可能会被如何解读。你需要尽可能确保 app 中 的颜色传达着合适的信息。

文本标签代表一个表格项的名称或标题,而详细信息文本标签则表明它包含与该表格项相关的附加信息。文本标签的左对齐格式使得列表很易于浏览。在列表项看起来比较相似的情况下,这种单元格样式很适用,因为用户可以参考详细信息文本标签中的附加信息,以便区分文本标签中列举的表格项。

您的应用程序应该何时将一个摇晃事件理解为触发撤销

按钮的标题应该是不可以被选中的,因为很难不触发按钮的点击事件并显示出编辑菜单。一般来说,具有按钮行为的元素不需要被选中。

8、大部分情况下,不要让颜色干扰用户。除非颜色是你的 app 主旨中不可或缺的部分,否则它通常应仅是一种恰到好 处的升华。

文本标签应该尽量简短,以避免发生文本截断。如果文本截断无法避免,请注意将最重要的信息放在前几个单词中。如果详细信息文本标签发生截断,用户则不会太介意,因为他们认为它只是用于加强或补充文本标签中列举的表格项。

支持多少层的撤销

如果您在自己的应用程序中支持“剪切”,“复制”和“粘贴”操作,您也应该支持撤销和重做(在“支持撤销和重做”介绍)。这是因为编辑菜单不需要在动作执行前进行确认,而且如果用户改变了主意,他们总是希望能够撤销最近的操作。

9、在响应文字大小的变化时,优先让内容变化。对用户来说,不是所 有内容都同等重要。当用户选择一个更大的文字大小时,他们想让 他们所在意的内容易于阅读;他们一般并不希望页面中的每一个字 都变大。

value 1单元格样式(
UITableViewCellStyleValue1
)将文本标签和详细信息文本标签显示在同一行,文本标签采用左对齐格式和黑色字体,而详细信息文本标签采用右对齐格式和较小的蓝色字体。这种单元格样式不宜使用图像。

为了给您的应用程序中的撤销和重做功能提供出色的用户体验,您应该:

支持撤销和重做

    例如,当用户在「辅助功能」中选择了一个更大的文字大小,「邮 件」中的收件人和消息正文以大号文字显示,但一些不太重要的文 本——例如时间和发件人——还是以较小大小显示。

图 8-6  分组表格(左)和无格式表格(右)中的value 1单元格样式

提供简短的描述性的语言精确地向用户描述他们正在撤销或重做的内容。UIKit自动采用字符串“撤销”和“重做”作为撤销警告按钮的标题,但是您需要提供一至两个单词来描述用户可以撤销和重做的动作。请注意,“取消”按钮不能被改变。)例如,您可以提供文本“删除姓名”或“地址变更”来创建如“撤销删除姓名”或“重做地址变更”这样的的按钮标题。

iPhone OS在文本视图中为用户提供了撤销和重做的能力。用户通过摇晃设备发起撤销动作,设备会显示一个警告,允许用户撤销他们刚才的输入,重做先前未完成的输入或取消撤销操作。

美高梅网址 12

美高梅网址 13

一定要避免提供过长的文本:过长的按钮标题会被截断,并且用户很难解读。此外,由于文本位于按钮的标题中,因此要使用标题式的大写方式,而且不要添加标点。简单地说,标题式的大写方式是指每个单词都大写,但冠词,并列连词和四个或四个字母以下的介词除外。)

UIKit允许您在自己的应用程序中以一种更通用的方式支持撤销(有关如何在代码中实现这一行为的信息,请参考撤销架构)。您可以指定:

邮件

 

避免重载摇晃操作。即使您可以通过编程来制定您的应用程序何时将一个摇晃事件理解为触发撤销,但是如果摇晃可以用来执行另一个动作,用户会感到迷惑。

用户可以撤销和重做的操作

七、应用图标

文本标签代表一个表格项的名称或标题,而详细信息文本标签提供了与该表格项紧密相关的重要信息。

摇晃操作是用户期望的发起撤销和重做的主要方式,但是在适当情况下,您也可以在导航栏中包含系统提供的“撤销”和“重做”按钮。如果在您的应用程序环境中,明确地显示一个专用按钮来执行这些功能非常重要,则您可以采取这种做法,但这种情况很不常见。

您的应用程序应该何时将一个摇晃事件理解为触发撤销

1、应用图标是产品品牌的重要组成部分。要将设计图标看成是向用户讲述产品故事以及构建情感联系的机会。

文本标签的左对齐格式和字体样式有助于用户浏览他们所需的项目列表,而详细信息文本标签的右对齐格式可以引起用户对表格项相关信息的关注。这种单元格样式适合于显示表格项的当前值,而该值可能选自一个子列表。

考虑您允许撤销和重做的动作所处的环境。一般来说,用户希望他们所做的更改和执行的动作能够立即生效。撤销和重做功能应该尽可能明确地关联到用户当前所处的环境,而非先前的环境。

支持多少层的撤销

2、优秀的应用图标都是独特、简洁、动人和令人难忘的。

在这种布局中,可能很难避免文本截断的发生(因为两个标签位于同一行),但是仍值得您努力尝试。否则,两组标签之间没有留白,用户很难了解这两部分信息之间的关系。

小结:iPhone人机界面常见任务处理方法 1)的内容介绍完了,希望本文对你有所帮助!请深入了解以下几篇文章:

为了给您的应用程序中的撤销和重做功能提供出色的用户体验,您应该:

3、应用图标在不同尺寸不同背景上都要显示良好。

虽然您可以在无格式表格或分组表格中使用 value 1单元格样式,但是其外观更适合于分组表格。例如,在设置应用程序的“用法”屏幕中,分组表格使用了value 1样式:

iPhone人机界面常见任务处理方法 2)

提供简短的描述性的语言精确地向用户描述他们正在撤销或重做的内容。UIKit自动采用字符串“撤销”和“重做”作为撤销警告按钮的标题,但是您需要提供一至两个单词来描述用户可以撤销和重做的动作。(请注意,“取消”按钮不能被改变。)例如,您可以提供文本“删除姓名”或“地址变更”来创建如“撤销删除姓名”或“重做地址变更”这样的的按钮标题。

八、条栏图标

图 8-7  在分组表格中具有最佳视觉效果的value 1单元格样式

iPhone人机界面常见任务处理方法 3)

一定要避免提供过长的文本:过长的按钮标题会被截断,并且用户很难解读。此外,由于文本位于按钮的标题中,因此要使用标题式的大写方式,而且不要添加标点。(简单地说,标题式的大写方式是指每个单词都大写,但冠词,并列连词和四个或四个字母以下的介词除外。)

1、为帮助你决定在导航栏或工具栏中是使用文本还是图标,你可以算算同一时间有多少图标在屏幕上可见。屏幕上出现 过多的图标会让 app 看上去很复杂。另外要注意,这一决定可能因 iPhone app 和 iPad app 而有所不同,因为 iPad app 往往在条栏文字上有更多空间

美高梅网址 14

iPhone人机界面常见任务处理方法 4)

美高梅网址,避免重载摇晃操作。即使您可以通过编程来制定您的应用程序何时将一个摇晃事件理解为触发撤销,但是如果摇晃可以用来执行另一个动作,用户会感到迷惑。

九、术语和措辞

value 2单元格样式(
UITableViewCellStyleValue2
)同样将文本标签和详细信息文本标签显示在同一行,文本标签采用右对齐格式和较小的蓝色字体,而详细信息文本标签采用左对齐格式和较大的黑色字体。这种单元格样式不宜使用图像。

人机 界面 常见任务处理方法是本文要介绍的内容,如果您具有使用桌面计算机或便携式计算机应用程序的经验,那么您会发现 iPhon...

摇晃操作是用户期望的发起撤销和重做的主要方式,但是在适当情况下,您也可以在导航栏中包含系统提供的“撤销”和“重做”按钮。如果在您的应用程序环境中,明确地显示一个专用按钮来执行这些功能非常重要,则您可以采取这种做法,但这种情况很不常见。

1、确保你所使用的术语能被用户理解。

图 8-8  分组表格(左)和无格式表格(右)中的value 2单元格样式

考虑您允许撤销和重做的动作所处的环境。一般来说,用户希望他们所做的更改和执行的动作能够立即生效。撤销和重做功能应该尽可能明确地关联到用户当前所处的环境,而非先前的环境。

2、使用轻松友好的语气,但不要过分亲密。要避免语气生硬或过于正式,但也不要过于虚情假意或曲意逢迎。要记住, 用户可能会频繁看到你的 UI 中的文字,起初看似精妙的表达看多了也许会变得令人生厌。

美高梅网址 15

启用推送通知

3、像报纸编辑那样思考,找出那些冗余和不必要的字词。如果你界面中的文本简短而直接,用户便能迅速轻松地理解。 找出那些最重要的信息,简明地表述并突出显示,这样一来人们就不用在一大堆文字中寻找他们要找的信息或下一步 要做什么了。

 

当您的应用程序注册了“苹果推送通知服务”时,您可以在有新数据到来时向用户发出警告,即使您的应用程序没有运行。当设备收到的消息是发给一个没有运行的应用程序时,它可以通过以下方式通知用户:

4、尽量少使用全部大写的词语。偶尔使用全部大写的词语有助于吸引人们的注意力,但当整段文字都是大写时, 它会变得难以阅读,看上去像是在对用户大吼大叫。

文本标签的右对齐格式,受限宽度及其字体样式意味着它仅起到一标题的作用,左对齐详细信息文本标签则包含更重要的信息。

在应用程序的主屏幕图标上更新一个 标记

十、设计原则

在这种布局中,标签是每一行中的相同位置相向排列的。这样,就在列表中的文本标签和详细信息文本标签之间形成了一条清晰的垂直边缘,有助于用户一眼就能看到详细信息文本标签的首单词。如果您允许文本标签被截断,该垂直边缘的清晰程度则会有所消减,这会造成用户浏览详细信息文本标签中的信息变得更加困难。

播放警告声音

1、美学完整性

虽然您可以在无格式表格或分组表格中使用 value 2单元格样式,但是其外观更适合于分组表格。例如,在联系人应用程序的“信息”屏幕中,分组表格使用了value 2样式:

显示一条警告消息

美学完整性不是用来衡量 app 的艺术表现或风格特征,而是指 app 的外观与行为是否与其功能相衬一致。

图 8-9  在分组表格中具有最佳视觉效果的value 2单元格样式

或者您可以组合使用以上方式。用户的反应可能是启动应用程序来处理新数据,或者仅仅是注意到有新数据到来就可以了。(要了解如何在代码中处理推送通知,请阅读苹果推送通知服务编程指南。)

2、一致性

美高梅网址 16

注意:推送通知的投递是无保证的。此外,用户也可以拒绝接收系统范围内的通知。推送通知的目的是提醒用户有新数据到达,而不是向您的应用程序传递关键的数据。

一致性可以让用户将 app 中的某部分界面的经验和技巧复用到其他地方,或者从一个 app 复用到另一个 app。一致 性的 app 不是对其他 app 的简单复制,也不是风格上的一成不变,相反,它关注用户所习惯的方式和标准,并提供 一个具有内在一致性的体验。

注意:所有的标准单元格样式都允许添加表格视图元素,比如复选标记或展开指示符。但是一定要注意,添加这些元素会减少单元格中可用于标题和副标题的空间宽度。

 

要判断一个 iOS app 是否符合一致性原则,可以通过以下几个问题来考量:

 

内置的设置程序中的“通知”部分为每一个注册了“苹果推送通知服务”的应用程序提供推送通知的设置。针对每一个应用程序,iPhone OS都可以让向用户设置是否允许标记,声音和警告消息。

App 是否和 iOS 标准保持一致?它是否正确地使用了系统控件、视图和图标?是否以用户所期望的方式利用了 设备的特性?

您也许能够通过增加表格行的高度,以支持文本换行,从而避免文本截断,但这可能会产生一些问题:

您应该花一些时间来思考哪种类型的事件更能让通知引起用户的注意。通知应该向用户提供有用的,可操作的信息,这些信息是用户即使在没有使用您的应用程序时也想要得到的。

App 自身是否具有内部一致性?文本内容是否使用了统一的用辞和风格?同样的图标是不是通常意味着相同的 意思?当用户在不同的位置执行同一个操作时是否符合其预期?自定义的界面元素外观和其行为是否保持一 致?

您必须以编程的方式检查文本的长度,并判断是否可能发生文本换行。您必须针对纵向和横向这两种情况都作出相应的判断,因为表格的宽度会对文本换行产生影响。

当您确定了用户可能关心的事件之后,您还应该让用户决定每种事件应该产生什么类型的通知(如果有通知的话)。如果用户无法定制您的应用程序的推送通知,那么用户可能会被他们不感兴趣的通知所打扰 。

App 是否在合理范围内与之前的版本保持一致?术语和含义是不是仍然相同?基本概念和主要功能是否基本不 变?

您应该避免在设备处于一个方向时显示换行的文本,而在处于另一个方向时不显示。

用户可以选择他们想要接收的通知的类型,因此以下三种类型您应该全部支持:

十一、为任务量身定制

无论表格视图的样式如何,可变的行高都会对表格视图在应用程序中的整体性能产生负面影响。

标记。 标记是一种对用户打扰最小的方式,它告诉用户有新的他们可能感兴趣的内容出现。标记是一个红色的小椭圆形,出现在主屏幕图标的右上角。您对于标记的外观没有任何控制权,它仅包含数字,不包含字母和标点符号。

优秀的 iOS app 能够在易于使用和目的清晰之间平衡用户界面的自定义。要达到这个平衡,一定要在设计过程中尽 早去考虑个性化定制。

最后要强调的是,虽然在分组表格中可变的行高是可以接受的,但是它们会使无格式表格显得混乱不均。

标记适用于告诉用户有多少项有待他们查阅。例如,标记中的数字表示的可能是未读的消息数,新分配的任务数,或当前有多少个远程玩家正在进行游戏。

定制要行之有据。理想情况下,定制的 UI 会辅助用户想要完成的任务,并提升其体验。你需要尽可能让你 app 的任 务去驱动你定制设计的决策。

 

声音。 您可以提供自定义的警告声音,也可以使用内置的警告声音。如果您创建了自定义的声音,一定要保证它简短,独特并且制作专业。(要了解有关自定义声音的技术要求,请参考苹果推送通知服务编程指南中的“准备自定义警告声音”一节。)请注意,当有通知被投递时,您不能强制使设备振动;用户能够控制收到警告时是否伴有振动。

尽可能避免增加用户的认知负担。用户熟悉标准 UI 元素的外观和行为,所以不需要停下来去思考如何使用它们。但 当他们面对那些和标准 UI 外观和行为完全不一样的元素时,先前的经验毫无用处。除非你独特的元素可以让任务执 行更容易,否则用户可能不会喜欢被迫去学习新的流程,而这些流程又不会在其他 app 中用到。

 

如果通知到达本身就为用户提供了足以采取行动的信息,在这种情势下,采用一种容易辨识的声音是非常适合的。例如,一个协同任务管理系统在成员的任务完成时可能会伴随着一段独特的声音。仅仅是听到这种声音,用户就知道任务已经完成了。

保持内部一致性。你的 UI 自定义得越多,在你的 app 中这些自定义元素的外观和行为保持一致就更为重要。如果用 户需要花时间去学习如何使用你所创建的不熟悉控件,那他们会希望可以依赖这些经验混迹整个应用。

 

警告。 警告是一种通知用户有新内容时最打扰用户的一种方式。在警告的顶端显示您的应用程序的名称,在它下面是您发送的消息,在警告底部有一至两个按钮。如果您指定了两个按钮,则警告会在左侧显示“关闭”按钮,右侧显示“查看”按钮(用户点击“查看”按钮可以在解除警告的同时启动您的应用程序)。如果您只指定了一个按钮,则警告只显示一个“确定”按钮。“关闭”按钮和“确定”按钮都会关闭警告而不会打开您的应用程序。

始终为内容服务。由于这些标准元素是如此常见,所以它们不会和内容有任何的不和谐。当你在自定义界面时,要确 保其不会盖过人们所关注的内容。例如,如果你的 app 可以让人看视频,你可能需要选择设计一个自定义的播放控 件。但是无论是使用自定义还是标准的播放控件,更重要的是控件是否在视频开始后隐藏并轻点时重新浮现。

 

警告会打断用户的工作流程,因此最好谨慎地使用它,并且只用它来投递有关某事件的简短的,重要的消息。特别地,一定要避免在您的警告消息中包含任何广告内容。

重新设计标准控件前要三思。如果你正在计划重新设计一个标准控件,要确保你的新设计提供了和标准控件一样多的 信息。例如,如果你设计的开关控件不能表现出两个相反的状态,用户可能不会意识到这是一个两态控件。

 

保证应用程序的可用性

务必对自定义的 UI 元素进行充分的用户测试。在测试期间,仔细观察用户是否能够准确了解你界面元素的作用,以 及他们是否可以轻易地与之交互。例如,你设计了一个点击区域小于 44*44 点的控件,那用户在点击时就会碰到麻 烦。或者,如果你创建了一个会对轻扫和轻点产生不同响应的视图,那么确保这个视图所提供的功能是值得人们和它 互动时耗费的注意力的。

 

一个易于使用的应用程序应该允许有障碍的用户在辅助程序或设备的帮助下可以成功使用。iPhone OS设备包含许多功能,使所有用户都可以更加方便地使用该设备,比如可视化语音邮件,缩放以及语音控制功能。您无需在应用程序中采取任何动作,用户可以直接获益于这些功能。

十二、iCloud

 

有了VoiceOver,事情就变得不一样了。VoiceOver是苹果公司一项创新性的屏幕阅读技术,它让用户无需看到屏幕,就可以控制他们的设备。为了确保VoiceOver用户可以充分地使用您的应用程序,您可能需要提供一些关于用户界面中视图和控件的自定义信息。

1、尊重用户的 iCloud 空间。

 

幸运的是,在默认情况下,UIKit控件和视图是易于访问的,因此,当您以完全标准的方式使用这些标准元素时,您只有很少的额外工作要做(如果有的话)。用户界面的自定义程度越高,您需要提供的自定义信息就越多,以便VoiceOver可以正确地向具有视觉障碍的用户描述您的应用程序。

iCloud 是用户花钱购买的有限资源,牢记这一点很重要。你应当使用 iCloud 去存储那些 用户生成和知悉的信息, 避免用其去存储 app 资源或者你能够重新生成的内容。

 

重要:为了使您的应用程序易于访问,您要做的工作包括为VoiceOver提供它所需的信息来帮助用户使用您的应用程序。您不需要为了适应VoiceOver而改变用户界面的视觉设计。

2、确定哪些类型的信息会存储在 iCloud 中。

 

 

除存储用户生成的文档和其他内容之外,你也可以存储少量的数据,例如 用户在程序中的状态或偏好设置。存储这类信息你需要使用 iCloud key-value storage。例如,如果用户使用你的 应用阅读一本杂志,你可能要用 iCloud key-value storage 去存储他们翻过的上一页,以便当他们在其他设备中再 次打开这本杂志时可以从中断的地方继续阅读。

 

让您的iPhone应用程序易于被VoiceOver用户访问是非常正确的做法。这种做法还可以增加您的用户群,并有可能帮助您满足由各主管机构创建的可用性准则。

3、如果你使用 iCloud key-value storage 去存储偏好设置,确认其是用户希望在他所有设备上生效的设置。

 

提供搜索功能并显示搜索结果

例如,一 些设置在家里比在工作环境中更有用。在某些情况下,比起在用户的 iCloud 账户中存储偏好设置,放到你 app 的服 务器上会更有意义,这样,无论 iCloud 是否启用,这些设置都能生效。

 

UIKit提供了搜索栏控件,您可以使用它显示一致的启动搜索的界面,但要您需要在您的应用程序中实现搜索功能。(要了解有关搜索栏的更多信息,请参考“搜索栏”;要了解有关在代码中处理搜索结果的更多信息,请参考UISearchDisplayController类参考。)为了确保搜索拥有实用而方便的用户体验,请花一些时间考虑如何实现搜索过程以及如何显示其结果。

4、确保你的程序在 iCloud 不可用时的行为合理。

 

 

例如,如果用户退出了 iCloud 账户,你应用不能使用 iCloud;或进 入飞行模式, iCloud 变得不可用。在这些情况下,用户执行了一个切断读取 iCloud 的操作,所以你的程序不需要 告诉他们这一点。然而,在这些用户做出的改变在其他设备上不可见时,可以适当地告诉用户,直至 iCloud 恢复访 问。

 

 

5、避免给用户一个创建「本地」文件的选项。

 

一般来说,您应该:

无论你的程序是否支持 iCloud,你都不应当鼓励用户去关注设备专用的文 件系统。相反,你要让用户关注他们的内容在 iCloud 中的普遍可用性。

 

为您的数据建立索引,以便随时进行搜索。

6、适时地自动更新内容。

 

实时过滤本地的数据,一旦用户开始输入,您就显示结果,并且随着用户继续输入而逐步缩小结果范围。

最好是用户不必做出任何操作就能在你的应用种读取最新内容。然而,你也需要在尊重用户设 备空间和带宽限制与这样的体验之间把握平衡。如果你的用户使用大体积文档,可以适当地让他们控制是否从 iCloud 下载更新。如果你需要这样做,设计一种方式以显示文档在 iCloud 上可用的新版本。当用户选择更新文档时,如果 下载耗时超过几秒,务必提供适当的反馈。

表格视图元素

如果可能的话,在用户输入时也同时过滤远程数据,但是,如果这部分的响应时间有可能将搜索结果的计算推迟1-2秒钟以上,一定要经过用户的允许。

7、向用户警告删除文档的后果。

iPhone OS包含一些可以扩展表格视图的表格视图元素。除非特别注明,否则这些元素都只适用于表格视图。在您的应用程序中,一定要正确地使用这些元素,因为用户已经习惯了它们在内置应用程序中的外观和行为。

在列表上面显示搜索栏或者在列表内显示索引。

当用户在一个支持 iCloud 的 app 中删除文档时,文档会从用户的 iCloud 账户和其他 所有设备中移除。在你执行删除之前,恰当的做法是展示一个警告框描述其后果并获得确认。

注意:从编程角度而言,表格视图元素是以不同的方式实现的。有些是单元格(控制表格如何绘制各行的对象)的附属视图,其他的可能在表格视图进入编辑模式时显示。要了解管理这些元素的不同方式,请参考iPhone OS表格视图编程指南。

避免为搜索打开一个标签页,除非它是您应用程序中的主要功能,应该被标识为一个不同的模式。

十三、编辑菜单

 

虽然实时过滤数据通常能够产生出色的用户体验,但这并不总是可行的。如果无法实时过滤数据,您可以在用户在键盘上点击“搜索”按钮之后再开始搜索过程。如果您要这样做,一定要提供有关搜索进度的反馈信息,以便让用户知道搜索进程没有停止。一种方法就是尽快显示文本结果,并为那些可能需要更长时间检索的数据显示占位符内容。

1、为确保你 app 的编辑菜单行为符合用户期望,你应当:

 

例如,在YouTube中,用户点击“搜索”按钮发起视频的搜索。如果网络连接速度很慢,YouTube会先显示“载入中……”消息和旋转的活动指示符,让用户知道搜索正在进行。然后,YouTube会显示一个结果列表,其中,每一行填写搜索的文本结果(比如视频的标题和收视率),以及带有虚线轮廓的立方体自定义图像。随着用户浏览视频标题的列表,下载完的视频缩略图会逐步替换掉原来的虚线立方体。像这样,在更多的数据仍在下载时向用户显示部分搜索结果,能够及时地为用户提供有用的信息。

显示与当前情境相符的命令。例如,如果什么都没选中,菜单就不应包含「复制」或「粘贴」,因为这些命令只在选 中区域中生效。同样,如果选中了一些东西,菜单里就不应包含「选择」。如果你要在一个自定义视图中支持编辑菜 单,要确保菜单中显示的命令和当前情境相符。

展开指示符 当这个元素出现时,用户知道他们可以点击这一行中的任意位置来查看下一级的信息,或是与当前列表项相关的选项。

如果您处理的数据可以归类于多个不同的类别,您可以提供一个范围栏。范围栏包含至多4个范围按钮,每个按钮代表一种分类。例如,“邮件”程序提供了一个范围栏,允许用户将他们的搜索集中在邮件的发件人,收件人或主题字段,或者将搜索范围扩大至包含所有的字段。如果范围栏能够帮助用户集中他们的搜索,或者能够大大减小搜索结果的数量,请您考虑使用范围栏控件。(要了解如何在您的代码中实现范围栏,请参考UISearchBar类参考。)

让菜单和你的界面布局相适应。iOS 在插入点或选中区域的上方或下方(取决于可用空间)显示编辑菜单,并在此显 示菜单指针,以便用户可以看到菜单命令是如何与内容联系起来的。如果需要,你可以在菜单出现前由程序决定好位 置,避免 UI 的重要部分被遮挡。

当选中一行后会显示另一个列表时,应使用展开指示符。不要使用展开指示符来显示某个列表项的详细信息;这种情况下应使用详细信息展开按钮。

 

支持两种呼出菜单的手势。尽管触碰并按住的手势是用户呼出编辑菜单最主要的方式,但他们也会在文本视图中双击 一个单词去选中它,同时呼出菜单。如果你要在自定义视图中支持菜单,确保能响应这两种手势。此外,你可以定义 用户双击时默认选中的对象。

详细信息展开按钮 用户可以通过点击该元素来查看某个列表项的详细信息。(请注意,您可以在表格视图之外的其他视图中使用这个元素,以显示指定对象的详细信息;更多信息请参考“详细信息展开按钮”)。

使用用户的位置信息

避免在界面中放置一个在编辑菜单中已经存在的命令按钮。例如,比起提供一个「复制」按钮,让用户使用编辑菜单 执行复制操作会更好,因为用户会想为什么在你的 app 中会有两种方式去做同样的事情。

在表格视图中,可以在某一行中使用详细信息展开按钮,来显示与该列表项相关的详细信息。请注意,与展开指示符不同,详细信息展开按钮所执行的动作可以独立于行的选择动作。例如,在电话收藏夹应用程序中,点击某一行会呼叫在该行位置上显示的联系人;而点击该行中的详细信息展开按钮会显示该联系人的详细信息。

用户喜欢能够自动使用他们的物理位置对内容进行标记的功能,或者查找当前在附近的朋友。用户同时也希望当他们不想与他人分享自己的位置时能够禁用这些功能。用户可以通过“设置” > “一般”中的“位置服务”设置来选择同意(或拒绝)系统范围内对他们的物理位置的访问。

如果对用户有益,考虑支持选中静态文本。例如,用户可能想要复制一张图片的标题,但他们不见得想复制条栏标题 标签或页面标题,例如「账户」。在文本视图中,应当默认选中一个词。

删除按钮 用户通过点击该元素可以删除对应的列表项。当用户用力点击某一行,或者在编辑环境下点击删除控制按钮时,该元素会出现在列表项的右边。(该元素的例子请参考图8-10)。

如果用户关闭了位置服务,而随后使用的应用程序功能需要获知他们的位置,则用户会看到一个警告,此警告告诉他们必须改变他们的首选项设置才能使用此功能。该警告不允许用户在应用程序的内部做此更改;相反,他们必须进入设置应用程序改变他们的首选项设置。这样可以确保用户充分意识到他们正在授予整个系统使用他们位置信息的权限。

不要让按钮标题可以选中。一个可选中的按钮标题会让用户很难在不触发按钮的情况下呼出编辑菜单。一般来说,像 按钮这样的元素都不应该被选中。

删除控制按钮 用户通过点击该元素可以显示或隐藏每个列表项的“删除”按钮。为了向用户提供更多的反馈信息,当用户点击这个按钮时,该按钮内的减号标志由水平方向变为垂直方向,并显示“删除”按钮。该元素的例子请参考图8-10。.

为了让用户知道他们为什么要打开位置服务,您最好只在用户试图使用一项显然需要获知他们当前位置的功能时,才显示警告。例如,当位置服务关闭时,用户仍然可以使用地图应用程序,但是,当他们访问发现并跟踪其当前位置的功能时,会看到警告。

支持复制和粘贴的同时,支持撤销和重做。在用户改变想法时,他们通常期望可以

在支持临时编辑模式的分组表格中,删除控制按钮出现在表格视图外部的左侧。例如,您可以在编辑联系人应用程序中的个人信息时看到这种情景。在处于固定编辑模式的分组表格中(比如“股票”和“天气”应用程序中的分组表格),删除控制按钮出现在表格内部的左侧。

如果位置服务处于关闭状态,iPhone OS会在您的应用程序第一次试图访问位置信息时显示警告。Core Location框架为您提供了一种获取用户偏好设置的方法,使您避免不必要或不适当地触发警告。(要了解关于这个编程接口的更多信息,请参考Core Location框架参考。)

2、如果你需要自定义编辑菜单项,遵循以下这些准则:

在无格式样式的表格中,删除控制按钮总是出现在表格内部的左侧,如图8-10所示。

知道了用户的偏好设置信息,您就可以尽可能准确地为需要位置信息的功能触发警告,或是完全地消除警告。

自定义项目列在所有系统项目之后。不要在系统项目中插入你自定义制的项目。

行插入按钮 用户通过点击该元素可以向列表中添加一行。

如果您的应用程序在没有这些信息的情况下无法执行它的主要功能,您最好在用户启动应用程序时尽快让他们看到警告。用户不会为此感到困扰,因为他们明白应用程序的主要功能依赖于知晓他们的位置。

保持合理的自定义菜单项目数。不要用太多的选择让你的用户崩溃。

行排序控件 当该元素出现时,用户可以拖动一行到列表中的另一位置上。

如果用户的位置不是您应用程序基本功能的一部分,您可以选择简单地限制那些用到位置信息的功能。例如,当位置服务关闭时,相机应用程序会自动关闭将用户的位置添加到他们所拍摄的照片的功能。但应用程序并不会阻止用户拍照,除非他们改变偏好设置的选项,这是因为“将位置信息添加到照片”只是一个附加功能,而不是基本功能。

为你自定义的菜单项选用简单明了的名字,并确保其准确描述了该命令的作用。

选定符号 该元素出现在列表项的右侧,表明该项当前被选中。

如果某项功能需要位置信息才能工作,一定要避免在用户实际选择该功能之前执行任何编程调用触发警告。(获取用户偏好设置信息的调用不会触发警告。)这样,您就可以避免让用户感到奇怪,为什么您的应用程序在用户做一些看似不需要位置信息的事情时,想要得到他们的位置信息。

十四、撤销和重做

图 8-10  表格视图可以显示“删除”按钮和删除控制按钮

处理方向的变化

用户通过摇晃设备可以发起「撤销」操作,这会显示一个警告框来让用户:

美高梅网址 17

用户可以随时旋转iPhone OS设备,并且他们期望正在浏览的内容做出适当的调整。在您的iPhone应用程序中,请务必:

撤销他们刚刚输入的内容

开关控件

注意加速度表的值(关于加速度表和加速度表编程接口参考的更多信息,请阅读iPhone应用程序编程指南)。如果合适的话,您的应用程序应该对所有的设备方向变化做出响应。

重做之前未完成的输入

开关控件呈现给用户两种互斥的选项或状态,比如“是/否”或“开/关”。开关控件每次只能显示两个选项中的一个;用户滑动该控件可以显示隐藏的选项或状态。图8-11显示了开关控件的例子。

如果您的应用程序用户界面的某一部分只在一个方向上显示内容,则该区域只适于在此方向上出现,而且不需要对设备方向的变化做出响应。例如,当用户选择一个iPod视频来观看时,无论当前设备方向如何,该视频都横向显示。这向用户表明,要旋转设备以便更好地观看该视频。该例中最重要的一点是,iPod没有提供“旋转”按钮;相反,用户知道要旋转设备,因为视频是横向显示的。

取消撤销操作

图 8-11  表格视图中的开关控件

让用户旋转设备来正确地浏览应用程序用户界面中需要特定方向的部分。避免创建新的控件或定义新的操作,告诉用户旋转设备。

通过定义以下内容,在你的 app 中以更通用的方式支持撤销操作:

美高梅网址 18

利用一步操作就能改变方向的过程,完成更顺畅且往往更快的旋转。但是,如果您的屏幕布局非常复杂,当发生方向变化时,您可以选择执行一种淡入淡出的转换。要了解如何在您的代码中支持一步操作过程,请参考UIViewController类参考。

用户可以撤销或重做的操作

当您需要向用户提供两个简单的,完全对立的选项时,您可以在分组表格视图中使用开关控件。由于其中一个选项始终是隐藏的,因此最好在用户已经知晓这两个选项是什么的情况下才使用开关控件。换句话说,不要让用户仅仅为了弄清楚另一个选项是什么而滑动开关控件。

用户经常因为想要“看到更多”而将他们的设备旋转为横向。如果您只是按比例放大屏幕的内容,则无法满足用户的期望。相反,您应该重新打包文本行,而且如果必要的话,重新安排用户界面的布局,以便更多的内容填充到屏幕当中。

什么时候你的 app 应当把一个摇晃事件看成是摇一摇撤销手势

您可以使用开关控件来改变视图中的其他用户界面元素的状态。根据用户做出的选择,可能会有新的列表项出现,或者有列表项消失,或者有的列表项变为有效或无效的状态。

使用声音

要支持多少步的撤销

使用表格视图实现常用的用户操作

用户期望iPhone OS设备具有非常美妙的声音,无论是操作系统的声音(比如铃声和警告声),还是应用程序的声音(比如媒体播放,环境声音和配乐)。此外,用户还希望设备发出的声音能够遵从他们的偏好和目的。

如需了解如何在代码中执行这一行为,请参阅「Undo Architecture」。如果你要在你的 app 中支持撤销和重做, 遵循以下准则以提供好的用户体验:

表格视图是非常通用的用户界面元素,因为它们可以通过不同的配置方式来支持不同的用户操作,比如:

用户决定声音的音量,以及他们是否想要听到这些声音。但是有些时候,即使当前的设置表明用户更倾向于静音,他们还是希望听到某些声音。例如,用户总是期望听到他们设置的警告声。从本质上讲,用户想要听到他们期待听到的声音,而不愿听到他们不期待的声音。

用简短的描述性短语告知用户正在撤销或重做的具体内容。iOS 会自动在撤销警告框的按钮标题上显示「撤销」和 「重做」(字词后包含一个空格),但你需要用一两个词来描述用户可以撤销或重做的行为。例如,你可能会有「删 除姓名」或「修改地址」这样的文本,那使用诸如「撤销删除姓名」或「重做修改地址」这样的按钮标题。(注意在 警告框中的「取消」按钮不可以被修改或者移除。)

选项列表。

为了帮助您顺应这样的需求,iPhone OS提供了一些编程接口,您可以用来:

避免使用过长的文本。过长的按钮标题会被截断并且让用户难于理解。由于这是一个按钮标题文本,使用标题大写样 式并且不要增加标点。

在iPhone OS中没有类似于菜单或弹出式菜单那样的多项选择控件,但是表格视图能够以一种简单的,整洁的方式显示选项列表,供用户进行选择。此外,表格视图可以提供选定标记图像,向用户标识列表中的哪一项(或哪些项)处于被选中的状态,如图8-12所示。

描述您应用程序的声音应该如何与设备上的其他声音保持一致。

避免让摇晃手势过于复杂。虽然你可以在代码中设置何时你的 app 会将一次摇晃事件识别为摇一摇撤销,但如果用 户还可以用摇晃执行一个完全不同的操作,这很可能会让用户迷惑。分析用户在你的 app 中的交互行为,避免造成 用户不能准确预测摇一摇手势的效果。

图 8-12  选项列表中的选定标记

确保应用程序的声音能够按照用户的期望进行播放。

将撤销重做和用户当下的情境清晰明确地联系起来, 而非之前的情境。 仔细考量那些允许被撤销或被重做的行为场 景。通常来说,用户期望他们的改变和操作可以立即生效。

美高梅网址 19

在您决定如何处理应用程序中的声音之前,您需要了解,当用户调整设备控件和使用外部设备(如耳机和耳麦)时,他们期望应用程序和设备如何运作。

十五、状态栏

如果您需要在用户点击表格视图中的某行时向用户显示选项列表,您可以使用任意一种样式的表格视图。但是,如果您需要在用户点击按钮或其它位于表格行之外的用户界面元素时向用户显示选项列表,则您应该选用无格式样式的表格视图。

振铃/静音切换—用户的期望

1、不要创建自定义状态栏。用户会依赖于系统状态栏的一致性。就算你可能会在 app 中隐藏状态栏,但也不适宜在其 出现的地方使用自定义的 UI。

导航层次信息。

如果用户希望做到以下几点,他们可以使用“振铃/静音”切换将他们的设备静音:

2、防止让滚动内容透过状态栏显示。

表格视图适用于显示有层次结构的信息,也就是说每个节点(即列表项)可以包含它自己的子集,因为其子集可以显示在一个单独的列表中。用户可以很轻松地沿着层次结构中的路径,从每层列表中选择一项。展开指示符表示用户点击该行中的任意位置都可以在一个新列表中查看其子集,如图8-13所示。

避免被意外的声音打扰,比如电话铃声和来信提示音。

3、避免在状态栏背后放置干扰性内容。特别是,你不能让用户误认为轻点状态栏可以获取内容或触发你 的 app 中的控 件。

图 8-13  展开指示符表示下一屏将显示该行的信息子集

避免听到用户操作的附带声音,比如键盘或其它反馈的声音,偶然的声音或应用程序启动的声音。

4、隐藏状态栏时要慎重考虑。由于状态栏是透明的,所以你通常不需要隐藏它。始终隐藏状态栏,意味着用户必须从你 的 app 中切换出去才能看到当前时间,或者知道是否有 Wi-Fi 连接。

美高梅网址 20

避免听到游戏的声音,包括附带的声音和配乐,它们并不是使用游戏程序所必需的。

5、在用户全屏观看多媒体内容时,考虑隐藏状态栏——和其他所有界面元素。如果你这样做了,请确保用户再轻点一次 即可恢复状态栏(和其他所有界面元素)。如果没有非常充分的理由,则要避免重新定义一个手势来唤起状态栏,因 为用户会很难发现并记住这样一个手势。

如果一个表格视图用于导航时,当用户按照层次结构回溯他们浏览过的内容时,先前被选中过的表格行不再保持高亮显示。

例如,在剧场中,用户会将他们的设备切换至静音状态,以免打扰到剧场中的其他人。在这种情况下,用户仍然想要使用他们设备上的应用程序,但他们不想被不期望的或没有明确要求的声音吓到,比如铃声或新消息提示音。

6、选择一个和你的 app 相协调的状态栏颜色。默认样式以白底黑字显示,适合用在浅色内容的 app 的顶部。而黑底白 字的状态栏则适合放在深色内容的 app 顶部。

 

但是,对于旨在产生声音的用户动作,“振铃/静音”切换不会消除它们产生的声音。例如:

7、适当的时候,显示网络活动指示器。网络活动指示器可以出现在状态栏中,以向用户显示长时间的网络接入状态。

查看按概念分组的信息。

媒体应用程序中的媒体播放不会被“振铃/静音”切换静音,因为媒体播放是用户明确请求的。

十六、导航栏

您可以使用任意一种表格视图样式,将信息归类为不同的逻辑分组,比如工作,家庭或学校。无格式样式表格和分组样式表格都允许您通过提供页眉和页脚文本来为每一段提供上下文信息,如图8-14所示。

时钟应用程序的警告不会被“振铃/静音”切换静音,因为此警告是用户明确设置的。

1、避免用过多的控件将导航栏挤满,即使看上去还有大量空间。

图 8-14  无样式样式的表格视图中通过页眉来分组

语言学习程序中的音效素材不会被“振铃/静音”切换静音,因为用户采取明确行动想要听到它。

2、确保在文字按钮之间有足够的间隔。

美高梅网址 21

语音聊天程序中的会话不会被“振铃/静音”切换静音,因为用户启动此类应用程序的唯一目的就是进行语音聊天。

十七、标签栏

一般来说,分组样式表格提供了更清晰的,可视化的分组表示,因为即使在快速滚动的情况下,用户也很容易认出分组所具有的圆形的四角。 图8-15显示了iPod设置中一些概念相近的分组。

这种行为遵循用户控制的原则,因为是由用户(而不是设备)来决定听到用户明确请求的声音是否合适。

1、在 iPhone 上,同时显示不超过 5 个标签(如果有更多标签,标签栏会显示其中 4 个并增加一个「更多」标 签,再将其他的标签以列表形式收纳在其中)

图 8-15  分组样式表格视图可以包含多个分组

音量按钮—用户的期望

十八、选择器

美高梅网址 22

用户使用设备的音量按钮来调节设备播放的所有声音的音量,包括歌曲,应用程序的声音和设备的声音。这意味着用户可以随时使用音量按钮关闭任何声音,无论“振铃/静音”切换的当前状态如何。

1、一般来说,当用户对整组数值都很熟悉时,可以使用选择器。

查看索引过的信息。

在某些情况下,应用程序适宜在其界面为用户提供音量设置功能。例如,YouTube显示了一个音量滑动器,用户可以用它调整正在观看的视频的音量。尽管YouTube正在运行,用户可以交替使用此滑动器和音量按钮来调整视频的音量。这是因为在应用程序运行时,滑动器起到音量按钮代理的作用:滑动器同时作用于应用程序的音量和整个系统的音量(铃声音量除外)。

2、尽可能将选择器内嵌到内容中显示。最好避免让用户在使用选择器时需要进入另一个视图。

如果您正在使用无格式样式的表格视图,则您可以显示索引来帮助用户迅速找到他们需要的东西。索引由一列悬浮于屏幕右边缘的条目(通常是字母表中的字母)组成,如图8-16所示。用户点击(或拖移至)一条索引项可以看到在列表中与之对应的区域。当列表的长度跨越数个屏幕时索引最为有用。

如果您需要显示音量滑动器,当您使用
MPVolumeView
类时一定要使用系统提供的滑动器。请注意,如果当前激活的音频输出设备不支持音量控制(比如A2DP设备),音量滑动器将被相应的设备名称取代。

3、如果你需要展示大量数值,考虑使用表格视图而不是选择器。

图 8-16  包含索引的无格式样式的表格视图

使用音量按钮调整应用程序当前播放的音频,也会同时调整整个系统的音量(铃声音量除外)。(在当前没有播放任何音频时,使用音量按钮调整铃声的音量。)

十九、分段控件

美高梅网址 23

这种行为遵循用户控制的原则,因为用户可以随时决定设备发出的声音应该有多大。

1、确保每个分段都容易点击。为了保证每个分段都有 44 x 44 点的舒适点击区域,请控制分段数量。在 iPhone 上, 分段控件应等于或少于 5 个分段。

如果您在无格式样式表格中包含了索引,您就应该避免使用那些需要在表格的右边缘显示的表格视图元素(比如展开指示符),因为这些元素会影响索引的使用。

有时候,应用程序可能需要调整相对和绝对音量级,以便在其音频输出中产生最佳的混合。但是,最终的音频输出的音量应该始终受到系统音量的控制,无论它是通过音量按钮还是音量滑动器进行调整的。这就意味着,对应用程序音频输出的控制仍然掌握在它所归属的用户的手中。

2、尽可能保证每个分段的内容长度一致。由于分段控件中所有分段的宽度都相同,当有些分段被内容填满而有些又没有 时会看起来不太美观。

 

耳机和耳麦—用户的期望

3、避免在单个分段混合放置文本和图像。

文本视图

用户插入耳机和耳麦就可以获得私人的声音体验并且解放他们的双手。在使用和不使用附件的情况下,用户对应用程序的行为有着不同的期望。

二十、警告框

文本视图是一片能够显示多行文本的区域,并在内容过长超出其边界范围时可以滚动。邮件应用程序就使用了文本视图让用户创建签名,签名会出现在用户所撰写的每一封邮件的正文末尾处,如图8-17所示。

当用户插入耳机和耳麦时,他们是打算继续听当前的声音,只是转为私下收听。因此,他们希望当前正在播放音频的应用程序继续播放此音频。

1、不要刻意避免使用负面措辞。 用户理解大多数警告框都是为了告诉他们发生的问题, 或者对危险情况作出警告。 因 此,负面但直接的措辞效果会好于正面但委婉的措辞。

图 8-17  显示多行文本的文本视图

当用户拔下耳机和耳麦时,他们不想自动将正在收听的内容分享给他人。因此,他们希望当前正在播放音频的应用程序暂停播放,让他们准备好之后显式地重新开始播放。

2、尽可能避免使用「你」、「你的」、「我」和「我的」。有时候,这些直接指向人的文本可能会引起歧义,甚至可能 会被理解成侮辱或傲慢。

美高梅网址 24

无线音频—用户的期望

3、避免在警告文本中描述点击哪个按钮从而导致文本过长。

您不但可以使用文本视图来显示多行文本,如一份大文本文件的内容,而且您还可以使用文本视图来支持用户编辑。如果您提供的文本视图是可编辑的,那么当用户在文本视图内点击时会自动显示键盘。键盘的输入法和布局取决于用户的语言设置。当用户点击“.?123”键(如图8-17所示)时,键盘会切换到数字键盘,使得数字和标点符号的输入更加方便。您也可以指定不同的键盘样式,这取决于您希望用户所输入的文本类型。关于可使用的键盘样式请参考“文本框”。

用户非常喜欢无线耳机的便捷,比如蓝牙A2DP设备。人们使用无线耳机和耳麦的理由与使用有线耳机和耳麦的理由是一样的:他们想要私下听到声音,并希望解放他们的双手。

4、合适地放置按钮:

您可以在文本视图中控制文本的字体,颜色和对齐方式,但这些属性会应用于整个文本。也就是说,您无法只对部分文本做出上述属性的改变。正如您所期望的那样,默认的字体和颜色采用系统字体和黑色,因为其可读性最强。默认的对齐属性为左对齐(您可以将其改为居中对齐或右对齐)。

用户对无线耳机的用户体验也有着非常类似的期望:

如果按钮不会造成破坏性后果,而这又是用户最有可能的操作,那么它应当在双按钮警告框的右边。取消按钮 则应该放在左边。

如果您一定要在同一个文本视图中使用不同的字体,颜色和对齐方式,您可以使用web视图代替文本视图,使用HTML来格式化文本。

当用户连接到无线音频设备时,他们打算继续听到当前的声音,只是转为私下收听。在这种情况下,他们希望音频能够继续播放。

如果按钮会造成破坏性后果,而这又是用户最有可能的操作,那么它应该放在双按钮警告框的左边。取消按钮 则应该放在右边。

Web视图

当用户断开无线设备时(或者当设备超出作用范围或关闭时),他们不想自动将正在收听的内容分享给他人。在这种情况下,他们希望暂停正在播放的音频,让他们准备好之后显式地重新开始播放。

注意:在警告框显示时点按「主屏幕」按钮,应如预期的那样退出此 ——即,警告框被取消且操作没有被执行。

Web视图是应用程序屏幕上可以显示丰富的HTML内容的一片区域。例如,邮件应用程序使用web视图显示邮件的内容,因为这种视图可以包含比纯文本更丰富的内容(图8-18显示了这样的一个例子)。

即使用户没有实际地插入或拔出无线音频设备,他们仍然希望能够选择一个不同的音频通道。为了解决这个问题,iPhone OS自动显示了一个控件,让用户选择音频输出路线。由于选择不同的音频通道是用户发起的动作,所以用户希望正在播放的音频继续播放。

二十一、应用图标

图 8-18  Web视图可以显示基于web的内容

定义应用程序的音频行为

1、使用用户会很容易识别的通用图像。

美高梅网址 25

如果声音能够增强用户体验或应用程序的功能,或者是用户体验或应用程序功能必不可少的一部分,您需要决定您的音频应该如何与设备的音频环境保持一致,以及应该如何响应用户的动作。例如,你需要决定:

通常来说,避免关注一个元素次要或晦涩的方面。例如,「邮件」的应用图标用 了一个信封,而非一个乡村风格的邮筒、邮包或邮局符号。

除了显示web内容之外,web视图还提供了一些元素来支持用户浏览开放的网页。虽然您可以选择向用户提供网页浏览功能,但是最好避免让您创建的应用程序看起来像是一个小型web浏览器。

当设备锁定或切换至静音时,您的音频是否应该继续播放。

2、拥抱简洁。

如果您拥有一个网页或web应用程序,您可以选择使用web视图对其进行包装,实现一个简单的iPhone应用程序。如果您打算访问由您操控的web内容,请首先阅读Safari Web内容指南,确保您已经知道对于iPhone OS设备,如何创建与之兼容并针对其显示进行过优化的web内容。

您的音频是否应该与当前正在播放的其他音频混合在一起(比如iPod中的歌曲)。

尤其是要避免在你的图标中塞入大量不同的图形。寻找一个可以代表你 app 实质的单一元素,以一种简 单、独特的形状传达出来,并谨慎地增加细节。如果图标的内容或形状过于复杂,细节便会成为干扰,还可能在更小 尺寸时模糊不清。

您的应用程序是否需要顺序或并行地同时处理音频输入和输出。

建议:要测试你的应用图标在小尺寸时的显示效果,将其放到「主屏幕」页面的一个文件夹中。最好再移动一些应用 图标到文件夹中,看是否你的图标显示良好并仍然能清晰辨识。

您的音频是否应该在中断后自动恢复播放。

3、如果你想要描绘现实物体,那就准确呈现。描绘现实物体的图标,应准确复制其特点,如布纹、玻璃、纸张和金属, 并能传达出物体的重量和触感。

要控制应用程序的音频在这些情况下应该如何表现,请使用“音频会话服务”或
AVAudioSession
类。这些编程接口不能产生声音;它们可以帮助您说明您的音频应该如何与设备上的音频进行交互,以及如何响应中断和设备配置中的变化。音频会话服务管理采用AV基础框架,音频队列服务,OpenAL和I/O音频单元等技术产生的声音。

4、确保图标在各种背景中显示良好。 不要只在浅色或深色背景上测试你的图标, 因为你不能预测用户会选择怎样的壁 纸。

注意:如果您的应用程序仅需要产生功能附带的用户界面音效,您可以使用“系统声音服务”。系统声音服务是iPhone OS技术,用于产生警告声音和用户界面音效,以及振动;它不适用于任何其他目的,而且它产生的声音不由“音频会话服务”管理。使用此技术的示例请参考SysSound示例项目。

最后再次感谢郎启旭的翻译,截取他的联系方式给他宣传一下,如果感兴趣的可以关注一下。

 

美高梅网址 26

 

重要:无论您使用何种技术产生音频,无论您如何定义它的行为,电话可以随时中断当前正在运行的应用程序。这是因为任何应用程序都不应该阻止用户接听来电。

 

音频会话是您应用程序和系统之间的音频中介。从用户体验的角度来看,音频会话最重要的一个方面就是定义应用程序的音频行为的类别。

 

 

为了提供良好的音频用户体验,应选择能最好地描述应用程序音频的类别。一定要基于类别的语义做出选择,而不是其行为的确切集合。这将确保您的应用程序能够按照用户的期望运转。此外,如果日后该类别的行为集合被重新修订,它也能最大限度地保证您的应用程序正常工作。

在极少数情况下,您可能需要通过为音频会话添加属性,来增强或改进某个类别的标准行为。例如,您可以添加
kAudioSessionProperty_OtherMixableAudioShouldDuck
属性,以确保您应用程序的音频比所有其他音频(电话音频除外)更响亮。如果能够在其他音频播放的同时听到您应用程序的音频对用户来说很重要的话,您可以这样做。但是,您应该注意,一个类别的标准行为代表了大多数用户的期望,所以您应该在添加属性完善此行为之前,认真仔细地考虑一下。要了解有关音频会话属性的更多内容,请参考音频会话编程指南中的“微调类别”一节。

您可以根据设备当前的音频环境选择您的类别。举个例子,如果用户可以在收听其他音频(不是您提供的配乐)的同时使用您的应用程序,您可能想要这样做。如果这对于您的应用程序来说行得通,一定要避免强迫用户停止收听他们的音乐,或是在您的应用程序启动时强迫用户做出明确的配乐选择。要了解如何做到这一点,参考“小结”中的场景2。

当应用程序正在运行时,您也可以改变音频会话的类别,虽然很少有必要这样做。这样做的主要原因是,应用程序需要在不同的时刻支持录音和播放。在这样的应用程序中,更好的做法是根据需要在Record类别和Playback类别之间进行切换,而不是选择Play和Record类别。这是因为选择Record类别,会使警告(比如来信警告)在录音正在进行时没有声音。

表4-1列出了您可以使用的音频会话类别。iPhone OS默认为音频会话分配了Solo Ambient类别。

注意:由于空间有限,表4-1只显示了每个类别名称的最后一部分。每个类别的实际符号名称均以
AVAudioSessionCategory
开始。例如,
MixWithOthers
属性的实际符号名称是
kAudioSessionProperty_OverrideCategoryMixWithOthers

 

 

 

 

 

 

 

表 4-1  您可以用来在应用程序中定义声音行为的音频会话类别

类别

含义

通过“振铃/静音”切换置为无声并锁定

与其他音频混合


SoloAmbient

增强应用程序功能的声音,应该将其他音频静音


Ambient

增强应用程序功能的声音,但不应将其他音频静音s


Playback

对应用程序功能来说必不可少的声音,可以与其他音频混合

否(默认)

是(当添加
MixWithOthers
属性时)


Record

用户录制的音频


PlayAndRecord

代表音频输入和输出的声音,顺序地或并行地

否(默认)s

是(当添加
MixWithOthers
属性时)


AudioProcessing

执行辅助硬件的音频编码的应用程序(它不播放或录音)

-

小结

下面是一些场景,它们说明了如何选择音频会话类别,以提供用户期望的音频体验。

场景 1. 假设您正在开发一个教育应用程序,帮助人们学习一门新的语言。您需要提供在用户点击特定控件时播放的反馈声音;并提供在用户想要听到正确的发音示例时播放的单词和短语的录音。

在这个应用中,声音对于应用程序的主要功能来说是必不可少的。人们使用该应用程序,收听他们所学语言中单词和短语的发音,所以,即使当“振铃/静音”切换设置为静音或设备锁定时,也应该播放应用程序的声音。由于用户需要清楚地听到发音,因此,他们希望其他正在播放的音频被静音。

为了产生用户期望的音频体验,您应该使用Playback类别。虽然您可以改进这一类别,以便与其他音频(如表4-1中所述)进行混合,但是这个应用程序应该使用默认的行为,以确保其他音频不会与用户明确选择要收听的学习内容发生竞争。

场景 2. 假设您正在开发一个游戏,让用户控制屏幕上的人物完成许多不同的任务。您需要提供各种各样的游戏音效和一段游戏配乐。

在这个应用中,声音会大大提升用户的体验,但它并不是主要任务必不可少的一部分。此外,用户很可能希望能够在静音状态下玩游戏,或者一边听音乐库中的歌曲(而不是游戏的配乐)一边玩游戏。

最好的策略是,要了解当您的应用程序启动时用户是否正在收听其他音频。不要让用户选择是否想要听其他的音频或您应用程序的配乐。相反,要使用“音频会话服务”的
AudioSessionGetProperty
功能,查询
kAudioSessionProperty_OtherAudioIsPlaying
属性的状态。根据查询的结果,您可以选择Ambient类别或Solo Ambient类别(这两个类别都允许用户在静音状态下玩游戏):

如果用户正在收听其他音频,您应该假设他们想要继续收听,而不想被迫收听游戏的配乐。在这种情况下,您应该选择Ambient类别。

如果当您的应用程序启动时,用户没有收听任何其他音频,应选择Solo Ambient类别。

场景 3. 假设您正在开发一个应用程序,为用户提供准确,实时的到达所选目的地的导航指示。您需要为行程中的每一步提供语音指导,以及一些反馈声音。此外,您认为用户希望在使用应用程序的同时,能够听到他们自己的音频。

在这个应用中,语音导航指示代表了程序的主要任务。基于这个原因,您应该使用Playback类别,它让您的音频在设备锁定或“振铃/静音”切换设置为静音时仍能播放。

为了让人们在使用您应用程序的同时,收听其他的音频,您可以添加
kAudioSessionProperty_OverrideCategoryMixWithOthers
属性。但是,您也想要确保用户可以在当前正在播放的音频之上,听到应用程序的语音指令。要做到这一点,您可以将
kAudioSessionProperty_OtherMixableAudioShouldDuck
属性应用到音频会话。这可以确保您的音频比目前播放的所有音频(除了电话音频)更加响亮。

 

场景 4. 假设您正在开发一个博客应用程序,允许用户向中心网站上传他们的文字和图片。您可能有一个简短的启动声音文件,各种各样简短的声音效果(比如当用户完成上载时播放的声音),以及当上载失败时播放的警告声音。

在这个应用中,声音会提升用户的体验,但它只是附加的。程序的主要任务与音频无关,用户不需要听到任何声音,也能成功使用该应用程序。在这种情况下,您可以使用“系统声音服务”产生声音。这是因为应用程序中所有声音的音频上下文都符合这一技术的目的,也就是要产生用户期望的,遵从设备锁定和“振铃/静音”切换的用户界面音效和警告声音。

 

 

 

 

 

 

 

 

 

 

 

提供选项

iPhone OS包含一些帮助用户做出选择的元素。当您需要在应用程序中提供选项时,您应该使用这些选择方法,因为用户已经熟悉了它们的行为。一般来说,您不应该试图复制在桌面计算机应用程序中看到的选择控件的外观和行为,比如应用程序菜单或一组单选按钮。iPhone OS提供了以下元素,您可以用来向用户提供选项:

列表(即表格视图)。用户点击列表中的某一行选择一项。列表几乎适合于显示任何数量的选项。有关在应用程序中使用表格视图的方法的详细信息,请参考“表格视图”。

选择器,包括日期和时间选择器。用户转动选择器的转轮,直到每个转轮显示出值的相应部分,比如包含年,月,日的日历日期。要了解有关在您的iPhone应用程序中使用选择器的更多信息,请参考“日期和时间选择器”和“选择器”。

开关控件。用户将开关控件从一侧滑动至另一侧,显示出两个值之一。开关控制的设计意图是在列表的内部提供一个简单的选项。有关开关控件的更多信息,请参考“开关控件”。

提供许可协议或免责声明

如果您随同iPhone应用程序提供了终端用户的许可协议(或EULA),App Store会显示该协议,以便用户在使用您的应用程序之前可以阅读它。

如果可能的话,尽量避免要求用户在第一次启动您的应用程序时,表示他们同意您的终端用户许可协议。这样用户能够立即享用您的应用程序。但是,即使这是首选的用户体验,它可能无法在所有情况下都行得通。如果您必须在您的应用程序中显示许可协议,请尝试采用一种与您的用户界面相一致的方式,这样可以将给用户造成的不便降到最低。

同样,如果您需要提供免责声明,一定要平衡好业务需求与良好的用户体验。如果可以的话,在您的应用程序描述或EULA中提供您的免责声明,以便它可以用在App Store中。

本文由美高梅网址发布于关于美高梅,转载请注明出处:iPhone人机界面常见任务处理方法,处理常见任务

上一篇:没有了 下一篇:2008服务器配置FTP站点
猜你喜欢
热门排行
精彩图文