ios12设计规范(上)

1,290 阅读1小时+

1.1 iOS设计主题:

  • 清晰: 整个系统中,任何字号的文字都必须清晰易读,图标表达含义准确易懂,修饰恰到好处,以功能驱动设计。留白、颜色、字体、图形和其他界面元素能够巧妙地突出重点内容并传达交互性。
  • 顺应: 流畅的动效和清晰美观的界⾯面有助于用户理解内容并与之交互,且不会干扰用户。当内容占据整屏时,半透明和模糊处理通常会暗示其他更多的内容。减少使⽤用边框、渐变和阴影,使界⾯面尽可能轻量量化,从⽽而突显内容。
  • 纵深: 清晰的视觉层和生动的动效赋予界面层次感,使其富有活力并有助于理解。使可触发界⾯面元素更容易被找到能提升体验的愉悦感,让用户在触发相应功能或者获取更多内容时不至于茫然无措。当用户浏览内容时,流畅的过渡能够提供纵深感。

1.2 ios设计原则:

整体美感:

整体美感体现在⼀款App的视觉外观、交互行为与其功能结合的优异程度。
例如,一款协助用户完成重要任务的App应该使用不易察觉且不会造成干扰的图形、标准化控件和可预知的交互行为,从而使用户聚焦在任务本身。 反之,一款沉浸式体验的App(如游戏),需要提供一个有吸引力的界面,在鼓励用户探索的同时为用户带来无穷的乐趣和激动。

一致性:

一致的应用程序通过使用系统提供的界面元素,众所周知的图标,标准文本样式和统一术语来实现熟悉的标准和范例。该应用程序以人们期望的方式结合了功能和行为。

直接操纵:

屏幕内容的直接操作吸引人们并促进理解。用户在旋转设备或使用手势影响屏幕内容时会遇到直接操作。通过直接操纵,他们可以看到他们行动的直接,明显的结果。

反馈:

反馈能够响应交互操作,呈现结果,便于用户了解情况。系统自带的iOS的App对用户的每个操作都提供了明确的反馈。

  • 交互元素在点击时会被高亮显示
  • 进度指示器显示了需要长时间运行的操作进度
  • 动效和声音使用户能够更清晰地感知交互行为的结果

隐喻:

当一个 App 的虚拟对象和行为与用户所熟悉的体验相似时——无论这种体验来源于现实⽣生活亦或是数字世界,用户就能够更快速地学会使用这款App。 隐喻在 iOS 中能够起⽤用是因为用户与屏幕在进行物理上的交互。

  • 可以通过移动分层视图来显示被遮挡的内容
  • 可以拖拽并滑动对象
  • 可以切换开关,移动滑块,滚动数值选择器
  • 可以通过轻扫来翻阅书籍和杂志

用户控制:

在 iOS 中,用户是决策者,而不是App。App可以对用户行为提出建议,对可能造成严重后果的行为发出警告,但不应该直接替⽤用户做决策。优秀的 App在用户主导和避免不想要的结果之间找到平衡。为了让用户拥有掌控性,App可以使用户熟悉且可预知的交互元素,让用户二次确认破坏性的行为, 并且保证可以停止正在执行中的操作。

1.3 界面元素:

  • 栏(Bars): 告知用户现在在App中所处的位置,提供导航,而且还可能包含按钮或者其它用来触发功能和交流信息的元素。
  • 视图(Views): 包含用户在App内最关注的信息,例如文本、图形、动画和交互元素的容器。视图允许使用诸如滚动、插入、删除和排列之类等交互行为。
  • 控件(Controls): 触发功能和传递信息。控件包括按钮、开关、输入框和进度指示器。

2.应用架构

2.1 无障碍

iOS为视力丧失,听力丧失和其他残疾的用户提供广泛的辅助功能。
为图像,图标和界⾯面元素提供替代文本标签。 替代文字标签在屏幕上不可见,但它们让VoiceOver可听见地描述屏幕上的内容,使视力障碍人士更容易导航。
响应可访问性首选项。 如果您的应用程序使用UIKit实现其用户界面,则文本和界面元素会自动适应某些可访问性首选项,例如粗体和大文本。您的应用还应在适当时检查并响应辅助功能首选项,例如启用减少运动的选项时。实现自定义字体的应用程序应尝试匹配系统字体的可访问性行为。
使用辅助功能测试您的应用。 除了文本和动作更改外,辅助功能选项还可以更改对比度,反转颜色,降低透明度等。启用这些设置并观察您的应用在启用这些功能的用户中的外观和行为方式。
包括隐藏式字幕和音频说明。 隐藏式字幕允许聋人和听力障碍者在视频中感知口头对话和其他可听内容。音频描述为视障人士提供重要视频内容的口头叙述。
使用足够的颜色对比度。 您的应用中对比度不足会让每个人都难以阅读内容。例如,图标和文本可能与背景混合在一起。在线颜色对比度计算器可帮助您准确分析应用中的颜色对比度,以确保其符合最佳标准。力争最小对比度为4.5:1,尽管7:1是首选,因为它符合更严格的可访问性标准。有关其他设计指南,请参阅颜色。

2.2 载入中

当内容加载时,空白或静态屏幕可能会使您的应用程序被冻结,从而导致混淆和沮丧,并可能导致人们离开您的应用。
在加载发生时明确说明。 至少,显示一个活动微调器,表示正在发生的事情。更好的是,显示明确的进度,以便用户可以判断他们将等待多长时间。 尽快显示内容。在看到他们期望的屏幕之前,不要让人们等待内容加载。立即显示屏幕,并使用占位符文本,图形或动画来确定内容尚不可用的位置。在内容加载时替换这些占位符元素。尽可能在后台预加载即将播放的内容,例如在播放动画或用户正在导航关卡或菜单时。
教育或娱乐人们掩盖装载时间。 考虑显示有关游戏玩法,娱乐视频序列列或有趣的占位符图形的提示。
自定义加载屏幕: 虽然标准的进度指标通常是正常的,但它们有时会感觉脱离背景。考虑通过自定义动画和与您的应用或游戏风格相匹配的元素来设计更加身临其境的体验。有关其他指导,请参阅进度指示器。

2.3 模态情景

模态通过阻止人们在完成任务或关闭消息或视图之前做其他事情来创建焦点。
尽量减少使用模态。 通常,人们更喜欢以非线性方式与应用互动。考虑创建模态上下文时,只有在获得某人的注意力,必须完成或放弃任务以继续使用该应用程序或保存重要数据时,才能创建模态上下文。
提供一种明显且安全的退出模态任务的方法。 确保人们在解雇模态视图时始终知道他们行动的结果。
保持模态任务简单,简短,重点突出。 不要在您的应用中创建应用。 如果模态任务过于复杂,人们可能会在进入模态上下文时忽略他们暂停的任务。特别警惕创建涉及视图层次结构的模态任务,因为用户可能迷路并忘记如何回溯他们的步骤。如果模态任务必须包含子视图,请提供层次结构中的单个路路径以及完成的明确路径。避免使用“完成”按钮执行除完成任务之外的其他操作。
如果适用,显示标识任务的标题。 您还可以在视图的其他部分中提供更全面描述任务或提供指导的文本。
保留提供必要且理想的可操作信息的警报。 警报会中断体验并需要点击才能解除,因此人们必须认为入侵是有道理的。要了解更多信息,请参阅警报。
尊重通知首选项。 在“设置”中,用户可以指定他们希望如何从您的应用接收通知。遵守这些首选项,以便他们不会完全关闭您应用的通知。
不要在弹出框上⽅方显示模态视图。 除了警报之外,弹出窗口上不应出现任何内容。在极少数情况下,如果需要在弹出框中执行操作后显示模态视图,请在显 示模态视图之前关闭弹出窗口。
使用您的应用协调模态视图外观。 例如,模态视图可以包括导航栏。在这种情况下,请使用与应用程序中导航栏相同的外观。
选择合适的模态视图样式。 您可以使用以下任何一种样式:

选择适当的过渡样式以显示模态视图。 使用与您的应用程序协调的过渡样式,增强对临时上下文切换的意识。默认过渡垂直滑动模式视图从屏幕底部向上滑动,一旦被解除则向下滑动。翻转式过渡似乎水平翻转视图以显示模态视图。在视觉上,模态视图看起来像当前视图的背面。一旦被解雇,它就会退回。在整个应用中使用一致的模态转换样式。

2.4 导航

人们往往不不知道应用程序的导航,直到它不符合他们的期望。您的工作是以支持应⽤程序结构和目的的⽅方式实现导航,而无需关注自身。导航应该感觉自然和熟悉,并且不应该主导界面或将焦点从内容中拉开。在iOS中,有三种主要的导航样式。

  • 分层导航
    每个屏幕做一个选择,直到到达目的地。要前往另一个目的地,您必须回溯您的步骤或从头开始并做出不同的选择。设置和邮件使⽤用此导航样式。
  • 平面导航
    在多个内容类别之间切换,音乐和APP Store使用此导航样式
  • 内容驱动或体验驱动的导航
    通过内容自由移动,或内容本身定义导航。游戏,书籍和其他沉浸式应用通常使用此导航样式。

有些应用程序结合了多种导航。例如,使用平面导航的应用可以在每个类别中实现分层导航。
始终提供清晰的路径。 人们应该始终知道他们在您的应用中的位置以及如何到达下一个目的地。无论导航风格如何,通过内容的路径都是合乎逻辑的,可预测的并且易于遵循。一般来说,给人们一个通往每个屏幕的路径。如果他们需要在多个上下文中查看屏幕,请考虑使用操作表,警报,弹出窗口或模态视图。
设计⼀种信息结构,使其快速轻松地获取内容。 以需要最少数量的点击,滑动和屏幕的⽅方式组织您的信息结构。
使用触摸⼿手势创建流动性。 使用最小的摩擦力轻松移动界面。例如,您可以让人们从屏幕侧⾯面滑动以返回上一个屏幕。 使用标准导航组件。 尽可能使用标准导航控件,例如页面控件,选项卡栏,分段控件,表视图,集合视图和拆分视图。用户已经熟悉这些控件,并且会直观地了解如何绕过您的应用。
使⽤用导航栏遍历数据层次结构。 导航栏的标题可以显示层次结构中的当前位置,后退按钮可以轻松返回上⼀个位置。 使用选项卡栏显示对等类别的内容或功能。 标签栏可让人们快速轻松地在不同类别之间切换,无论当前位置如何。 当您有多个相同类型内容的页面时,请使用页面控件。 页面控件清楚地传达可用页面数和当前活动页面数。Weather应用程序使用页面控件来显示特定于位置的天气页面。

2.5 新手上

提供启动屏幕。 应用程序启动时会出现启动屏幕,从而给人的印象是应用程序快速响应,同时允许加载初始内容。此屏幕很快就会被您应用的第一个屏幕取代,因此除了可本地化的文本和交互元素外,它应该与此屏幕非常相似。要了解更多信息,请参阅启动屏幕。
以适当的方向发射。 如果您的应用支持纵向和横向模式,则应使用设备的当前方向启动。如果您的应用仅在一个方向上运行,则应始终以该方向启动,并让人们在必要时轮换设备。除非有令人信服的理由,否则横向模式的应用程序应正确定位,无论设备是向左还是向右旋转。有关其他指导,请参阅适应性和布局。
迅速采取行动。 避免显示启动画面,菜单和说明,这样会缩短内容并开始使用您的应用。相反,让人们潜入。如果您的应用需要教程或介绍序列,请提供一种跳过它们的方法,而不是向返回的用户显示它们。
预计需要帮助。 积极寻找人们可能被卡住的时间。例如,游戏可以在暂停或角色没有前进时随便显示有用的提示。让用户重播教程,以防他们第一次错过任何内容。
** 坚持教程中的要点。** 为初学者提供指导是好的,但教育并不能代替优秀的应用程序设计。首先,让您的应用程序直观。如果需要太多指导,请重新访问您的应用程序的设计。
让学习变得有趣和可被发现。 边做边学比阅读指令清单更有趣,更有效。使用动画和交互性逐步和上下文教学。避免显示看似互动的屏幕截图。
避免事先询问设置信息。 人们希望应用能够正常运作。为大多数人设计您的应用程序,让少数想要不同配置的应用程序调整设置以满足他们的需求。尽可能从设备设置和默认值或通过同步服务(如iCloud)派生设置信息。如果您必须询问设置信息,请在第⼀次在应⽤用内提示,并让用户稍后在您应用的设置中进行修改。
避免显示应用内许可协议和免责声明。 在App下载之前,让App Store显示协议和免责声明。如果您必须在应用程序中包含这些项目,请以平衡的方式集成它们,而不会破坏用户体验。 当您的应用重新启动时,恢复以前的状态。不要让人们回溯到您应用中的先前位置。保留并恢复应用的状态,以便他们可以在中断的位置继续操作。
不要让人们过快或过于频繁地为您的应用评分。 过快或过于频繁地要求评级是令人讨厌的,并且会减少您收到的有用反馈的数量。为了⿎鼓励考虑周全的反馈,在要求评级之前,让人们有时间对您的应用发表意见。始终提供退出评级提示的方法,并且永远不要强迫用户为您的应用评分。
不要⿎鼓励重启。 重新启动需要花费时间,使您的应用程序看起来不可靠且难以使用。如果您的应用程序有内存或其他问题导致难以运行,除非系统刚启动,您需要解决这些问题。

2.6 请求权限

用户必须授予应用访问个人信息的权限,包括当前位置,日历,联系信息,提醒和照片。虽然人们很欣赏使用可以访问此信息的应⽤用程序的便利性,但他们也希望能够控制其私有数据。例如,人们喜欢能够使用自己的实际位置自动标记照片或找到附近的朋友,但他们也希望选择禁用此类功能。
仅在您的应用明确需要时才会请求个人数据。 对个人信息的请求持怀疑态度是很自然的,特别是在没有明显需要的情况下。确保仅在人们使用明确需要个人数据的功能时才会发出权限请求。例如,应用可能仅在激活位置跟踪功能时请求访问当前位置。
解释您的应⽤用需要信息的原因。 提供自定义文本(称为目的字符串或用法说明字符串)以显示在系统的权限请求警报中,并包含一个示例。保持文字简短和 具体,使用句子,并礼貌,所以人们不会感到压力。无需包含您的应用名称-系统已标识您的应用。有关开发人员指导,请参阅保护用户的隐私。
仅在您的应用运行所需时才会在启动时请求权限。 如果您的应用程序显然依赖于他们的个人信息来操作,则用户不会被此请求所困扰。
不要不必要地请求位置信息。 在访问位置信息之前,请检查系统以查看是否已启用位置服务。有了这些知识,您可以延迟警报,直到功能真正需要它,或者完全避免警报。

2.7 设置

某些应用可能需要提供一种方法来进行设置或配置选择,但大多数应用可以避免或延迟这样做。成功的应用程序可以立即适用于大多数人,同时还提供一些方便的方式来调整体验。当您将应用程序设计为以大多数人期望的方式运行时,您可以减少对设置的需求。
推断你可以从系统中得到什么。 如果您需要有关用户,设备或环境的信息,请尽可能向系统查询,而不是询问用户。例如,不要让某人输入他们的邮政编码,以便您可以提供本地选项,请求使用他们当前位置的权限。
周到地优先考虑应用程序中的配置选项。 您的应用程序的主屏幕是一个选择必要或经常更改的好地方。辅助屏幕更适合仅偶尔更改的选项。
在“设置”中公开不经常更改的配置选项。 “设置”应用是在整个系统中进行配置更改的中心位置,但人们必须离开您的应用才能到达目的地。在您的应用程序中直接调整设置会更方便。
在适当的时候提供设置的快捷方式。 如果您的应用包含将用户定向到“设置”的文本,例如“转到设置>MyApp>隐私>位置服务”,则会提供一个自动打开该位置的按钮。

3.用户交互

3.1 3D触摸

3DTouch为触控交互提供了一个全新的维度。用户可以在支持的设备中,通过不同力度按压屏幕来访问额外的功能。App会通过展示菜单、显示额外内容、播放动画等方式来进行反馈。使用3DTouch功能不需要学习新的交互手势,只要轻轻按压屏幕就可以轻易发现额外的内容。

  • 主屏交互(Home Screen Interaction)
    在主屏幕中,你可以通过按压一个支持3DTouch的App图标来显示动作面板。这个面板可以让你快速执行App程序中的常见任务或查看有趣的信息。例如,日历App就提供了“创建事件”的快捷方式,还显示了你的“日程安排”中的下⼀个事件。
  • 轻按和重压(Peek and Pop)
    轻按可以让用户使用3DTouch预览一项内容,例如页面、链接或者文件,预览窗口处于页面内容的最前端。只需用手指轻按就能预览,而抬起手指就能退出预览。如想要查看更多信息,只需重压,直到预览窗口弹出并充满整个屏幕即可。在一些预览窗口中,你可以向上滑动来显示相关的操作按钮。例如,在浏览Safari中的网页时,你可以向上滑动屏幕,实现在“新标签页中打开”,“加入阅读列列表”和“拷贝”这三个操作。
    轻按可以提供实时的、内容丰富的预览效果: 在理想的情况下,预览窗口是为了给当前的页面提供补充信息,或者帮助你决定是否打开该页面。例如,先预览一下邮件中的链接,再决定是否在Safari中打开或与朋友共享此链接。轻触还可以App在可被点击的列表中,通过预览补充信息来决定是否选择该行。
    设计⾜足够⼤大的轻按视图: 需要设计足够大的预览视图,使手指不会遮挡住内容。并且用户通过视图包含的信息来决定,是否应该重压打开完整项目。
    轻按和重压要保证场景的一致性: 如果你在相同类型的元素中有些地方支持轻按和重压,在其它元素中不支持(比如同一个列表中第一个选项支持3DTouch功能,而第二个选项却不支持),用户就会对在什么地方可以使用这个功能产生混乱,或者认为你的App还是他们的设备发生了故障。
    避免在轻按视图中显示按钮式元素: 如果这时用户抬起手指来点击面板中看起来像按钮的元素,那么轻按就会消失。
    允许每个轻按视图都能被重压: 尽管轻按视图能提供给人用户所需的大部分信息,但如果他们决定直接离开当前页面,直达该页面时,那么轻按也应该能转换成重压。重压展示出的内容也应该和点击该页面时一样。
    不要让同一元素具备轻按和编辑菜单两个功能: 当一个项目都启用两个功能时,不但会让用户感到困惑,也会让系统难以判断用户的意图。
    适时提供操作按钮: 并不是每个轻按都需要操作按钮,但这是一个为常见任务提供便捷入口的好方法。如果你的App已经为该项目提供了自定义的触控操作,那么在最好在轻按中也加入同样的操作。
    避免加上⼀个操作按钮来打开轻按界面: 用户一般都通过更用力的按压来打开他们轻按的项目。所以,没有必要再提供一个明显的打开按钮。
    不要让轻按成为唯一能执行动作的操作: 并不是所有设备都支持轻按和重压,甚至有的用户会关闭3DTouch功能。你的App应该考虑到其它触发操作的方式。比如,你的App也可以通过点击和长按时出现的轻按视图。
  • 动态照片(Live Photos)
    App可以支持动态照片,按压照片可以用来查看动态的照片,包含动作和声音来再现拍照时前后的片刻。

3.2音频

用户通过音量键、静音键、耳机声控和屏幕上的音量调节滑块控制声音。很多第三方配件也有声控功能。音频可以通过内部或外部扬声器、耳机输出,甚至通过支持AirPlay或是蓝牙的设备来无线输出。无论声音是你App的重要功能还只是一个点缀,你都应该知道⽤户对声音有什么期待并且去满足他们。

  • 静音(Silence) 用户将他们的设备调至静音来避免被突发的声响(比如电话铃声和短信提示声)打扰。他们也想要关闭没有意义的声音,包括按键声、音效、游戏背景音乐以及其它音频反馈。当设备被设置成静音后,只能播放用户确认打开过的声音,比如媒体播放中的声音、闹钟、音频和视频信息。
  • 声音(Volume) 无论是使用设备按键或是屏幕中的滑块,用户都期望音量的变化会改变整个系统音量,包括音乐声和App内的音效。但是提示铃声音量是例外,它只能在音频没有播放的情况下,被单独调节。
  • 耳机(Headphones) 在私密环境中,用户使用耳机听声音,并且能够解放双手。当插入耳机时,用户希望声音能够自动继续播放而不被中断。当拔掉耳机时,他们希望播放能够立即暂停。
  • 设计良好的音效体验(Designing a Great Audio Experience)
    有时自动调整音量,但不是总体音量: 你的App可以调整特定的音量来达到很棒的音响效果。但是最终的音量还是由系统音量来控制。
    可以允许重置音频: 用户经常会想要选择一个不同的音频输出设备。比如,他们会想要用客厅的立体音响、车载收音机或是苹果电视来听音乐。请支持这个功能除非你有十足的理由不这么做。
    使用系统自带的音量窗口来调节音量: 音量窗口是调整音频的最好方法。这个窗口是可以自定义的,它包括一个音量的滑块,甚至还包括了一个重置音频输出的控件。
    使用系统自带音效来实现短音和振动:
    如果声音对你的App十分重要,请先设置音频类型: 不同的音频类型中,有的允许声音被静音键静音、有的与其它声音混合、或是允许App在后台时播放。根据不同的类别和当前设备的音频状态来选择合适的方案,然后将其配置到你的音频中去。例如,非必要情况下,请不要打断用户正在收听的来自另一个App的音乐。总之,当你的App在运行时,最好不要改变其原有类型,当然那种需要录制和重放不同时间音频的App除外。
    当时可以重新播放被打断的音频: 有时正在播放的音频会被另一个App的音频中断。暂时性中断(如来电铃声)被认为是可恢复的。永久中断(如Siri打开的音乐播放列表)被认为是无法恢复的。当一个可恢复的中断发生时,你的APP应该在中断结束时自动重新播放被打断的音频。例如,⼀个正在播放配乐的游戏和一个播放音频的多媒体App都应该可以恢复播放。
    让其他App知道何时将暂时性的音频播放完毕: 如果你的App可能会暂时中断其他App的音频,它应该对音频会话进行适当的标记,这样其他App就能知道何时可以安全的恢复。
    只在特定时间对声音控件有反应: 不管你的App是在前台还是后台运行,用户可以从你App的外部控制音频播放,比如控制中心或耳机控制。如果你的App正在音频相关的环境中播放音频,或者连接到一个支持 AirPlay的设备上,那么它可以对音频控制做出回应。否则,当控件激活时,你的App不能停止其他App正在播放的音频。
    不要重新定义声音控件: 人们希望音频控制在所有App中都能保持一致。永远不要重新定义声音控件。如果你的App不支持相应控件,那么它就不应该对它们做出响应。

3.3身份验证

可以通过让用户进行身份验证的条件来为他们提供有价值的服务,例如个性化体验、访问附加功能、购买内容或同步数据。如果你的App需要认证,那保持登录过程的快速、简单和自然,就不会让你的App的体验感变差。
在所有注册和登录流程中使用密码自动填写: 此功能自动生成并填写密码和安全代码,以便人们可以在验证界面中花费更少的时间。所有应用程序都应该支持此功能。有关开发⼈人员指南,请参阅支持密码自动填写。
将登陆尽量往后排序: 当人们在做一些有用的事情之前被迫登录时,他们往会放弃这样的App。在强制用户登陆前给他们⼀个爱上你的App的机会。在购物App中,让用户可以在启动时能立即浏览你的商品,并且只有在他们准备好购买的时候才需要登录。在一个流媒体App中,也在登录前让用户可以搜索你的内容,看看你的App能提供些什么。
解释身份验证的优点,以及如何注册: 如果你的App需要验证,请在登录屏幕上展示简短友好的说明描述使用这个流程的原因及好处。另外,请记住,并不是所有使用你的 App的人从一开始就有一个账户。确保你描述了如何获得一个账户,或者提供一个简单的App内的注册方式。
显示合适的键盘类型来减少数据输入: 例如要求填写Email地址时,显示Email键盘屏幕,其中要包含常用数据输入的快捷键。 永远不要使用“密钥”这个术语: 当生物识别认证失效时,密钥是用于解锁用户的iOS设备,并与Apple Pay进行身份验证的。

  • 脸部识别和触控(Face ID and Touch ID) 尽量让你的App支持生物识别认证: Face ID和Touch ID是人们所信任的比较安全、熟悉的认证方法。如果用户启用了生物识别认证,你可以假设他们理解它的工作原理,喜欢这份便利,并且愿意随时使用它。请记住,用户可能会选择在他们的设备上禁用生物识别认证,因此你的App要准备好应对这种情况。
    向用户展示一个简单的验证方法: 当人们不必选择如何进行身份验证时,这是最直观的一种⽅方法。给他们一个简单的选项,比如 Face ID,在初始方法失败时,请求用户名和密码,在返回刚才的操作。
    仅在响应用户操作时启动用户认证: 选择一些显眼且明确的操作指示,比如点击一个按钮,确认用户是想主动进行身份验证的。在Face ID的情况下,它也提高了用户面对摄像头的可能性。
    始终标识身份验证方法: 例如,使用Face ID在你的App上登录的按钮,应该被命名为“用Face ID登录”,而不只是“登录”。 **准确使用验证方法:不要在支持Face ID的设备上引用Touch ID。同样,也不要在支持 Touch ID的设备上引用Face ID。要检查设备的功能并使用适当的术语。
    总之,不要在你的App中提供选择生物识别身份验证的设置: 如果在系统层面启用了生物识别身份验证,那么就假定⽤户想要使用它。如果你实现了一个App特定的设置,那么你的 App会要求用户进行生物识别认证,但是实际上在系统范围内它是被禁用的。

3.4 数据键入

无论是点击界面元素还是使用键盘,键入信息都是一个乏味的过程。当⼀款App还没有提供实际的帮助,就要求用户大量的键入内容,会导致进程变慢,用户就可能会很快失去耐心,甚至完全放弃这个App。
尽量显示选项: 数据输入高效化。例如,考虑使用选择列表来代替打字,因为从提前设定好的选项中进行选择,要比打字容易多了。
尽可能的从系统中获取信息: 不要强迫用户提供那些可以自动或是在用户许可内就能获取的信息,比如联系人或是日历信息。提供合理的默认值:尽可能地预填可能性最大的信息值。提供准确的默认值可以进行快速决策。
只有在收集完必要的信息之后才能进行下一步: 在启动“下一步”或“继续”按钮之前,确保所有需要的字段都有值。使用可视化按钮,提示用户可以继续 进行下一步。
立刻验证填写信息: 当你在填写完一份冗长的表格后,又不得不回到前面去纠正错误是让人十分沮丧的。尽可能在输入后立即检查字段值,这样用户就可以马上纠正它们(例如输入用户名后立马检查格式和是否被注册,而不需要在输入完密码后再一起验证)。
只有在必要时使用文本信息: 只要在真正需要的信息,才使用字段表达。
将信息列表化以高效预览: 在列表和集合中,选择⼀个选项是更容易的。考虑将信息列成表,以字母顺序排序或以另⼀种逻辑⽅方式排序,从而可以快速扫视和选择(如商品类目以字母排序的方式在列表中展现出来)。
在文本框中显示提示,以助沟通: 当字段中没有其他文本时,文本字段可以包含如“电子邮件”或“密码”之类的占位符文本。当占位符文本足以表述清楚的话,不要再使用单独的标签来进行描述。

3.5 拖放

只要⼀根⼿手指,用户就可以将选定的照片、文本或其他内容,从一个位置拖到另一个位置来进行移动或复制,然后松开手指将其放下。
触摸并按住选择的内容使它看起来会上升并附着在用户的手指上。当内容被拖动时,动画和视觉提示要识别你想放置的位置。当无法放下,或着拖拽只能复制而不是移动时,该系统会显示别的标识来提醒用户。

  • 原位置和⽬目的地 (Sources and Destinations) 拖放包括将选中的内容从原位置转移到目的地。这些位置可以在同一集合中,如文本视图,或分屏模式下两端的文本视图。
    注意: 在App程序之间拖放的内容是复制文件,而不是内容本身(即拖动只是将内容复制到另一个应用中而不是移动存储位置)。
  • ⽀支持拖放功能(Supporting Drag and Drop) 拖放是一种高效的、直观的功能,用户期望在整个系统中都能实现。如果你的App包含或生成了了文本,照片,视频,音频,或者其他用户想要移动,复制或插入的内容,你的App应该支持拖放功能。
    所有可选择和可编辑的内容都能进行拖放: 可选择的内容应该是可拖动的可编辑的内容也是可以放置内容的。还要确保你的 App 能够支持在这些区域复制粘贴。
    允许将内容放到控件上: 总之,配置控件要支持数据输入或选择(比如文本字段)接受可放置的内容。
    尽可能使⽤用标准文本视图和输入框: 系统自带的这些组件都包含对拖放功能的原生支持。
    为提高效率,考虑支持多项拖放: 在很多App里,用户可以用一根⼿手指拖动一个内容,同时用另一根手指轻敲其它内容,就会在选择的第一个内容的手指下方显示出堆叠效果。然后,用户可以将它们像组一样拖放到指定的位置。例如,主屏幕允许用户根据这个方法选中多个App程序图标,并将其拖放到一个文件夹中。在APP中,如 “照片”,提供了用户可以在拖拽之前选择多个对象的选择模式。
    确定在你的 App 中拖放内容是移动还是复制: 一般来说,当原位置和目的地的载体是相同时(在文档中拖动文本),才可以移动,而当它们不同时(在文档之间或App程序之间进行拖动),则使用复制。当然,情况并非总是如此,重点是拖放应该是直观的。在“提醒”中,列表之间拖动操作是⼀一种移动而不是复制,因为这是用户想要的。而在 App 程序之间拖放内容就总是复制了。
    用户是应该可以撤销拖放的: 通常情况下,当用户无意中将内容放到错误的位置时,他们应该能够使用撤销来将App返回到之前的状态。也就是说,被放置的内容可以被移除,如果被放置的内容是从你的App程序里移出的,那么它应该恢复到原来的位置。 考虑用一下弹簧加载: 有了弹簧加载,用户可以通过拖动已选择的内容,并在不放置的情况下暂停,来激活某些控件,比如按钮和分栏组件。例如,在邮件中,选择的消息可以被拖动到导航栏的 Back 按钮上,以到达邮箱里的其他位置。永远不要让弹簧加载成为激活控件的唯一方法。把它当作一种可以被发现的小惊喜。在大多数情况下,一个弹簧加载的控件也应该可以响应一个点击手势。
  • 提供可拖动的内容 (Providing Dragged Content) 可以自定义拖动项的预览: 通常,在用户⼿手指下显示被拖动的预览效果应该是半透明内容,表明拖动正在进行中,并使用户能够看到被拖动内容下面的目的地。
    尽可能的提供多个拖拽数据的显示类型,从高保真到低保真排序: 例如,当提供线条稿时,你的App可以按照顺序依次提供一个PDF矢量显示,一个具有透明度的无损PNG图像,以及一个没有透明度的有损的 JPEG 图像。这样,用户就可以选择最高质量的显示来导入到目的地。
    将自定义对象的本地版本作为最丰富的数据形式: 例如,一个允许人们拖拽图表的App应该首先显示本地的图表对象。然后,它应该为那些不支持图表对象的App提供可替代的图像版本。
    当你 App 的内容传输会比较耗费时间或资源密集的时候,文件要提供程序扩展功能: 文件提供程序扩展,并确保完成,即使你的 App 不再运行也能做到。请注意,只有用户放下内容后传输才会开始。
    当你的 App 需要时间传输内容时请提供进度指示: 如果内容需要下载或大⽂件需要时间复制时,请提供进度信息。至少提供内容的总大小,这样就可以计算出剩余的时间,并显示恰当的进度指示器。
  • 接收放下的内容(Accepting Dropped Content) 使用视觉提示来识别潜在目的地,并预览放置内容的效果: 高亮显示、插入点光标和动画都是识别目的地的好方法。当内容被拖过来时,视图可以微妙地闪烁并改变颜色,或者段落可以分开为拖动的图像腾出空间。当屏幕上有多个可能的目的地时,一次只识别一个。如果原位置和目标容器是相同的,那么可以不需要高亮显示,除非内容完全从原位置中拖出来,然后重新进入。 当内容被放下时或不再位于目的地之上时,确保不显示高亮。
    自动滚动目的地的内容: 当内容被拖到目的地的边界之外时,你的App可能需要判断滚动显示当前视图遮挡的内容,或者允许⽤用户继续拖动到完全不同的目的地。如果你的App让用户进行滚动拖放,那就定义一个区域,当拖拽的项目被放置在上面时,这个区域会自动滚动。例如,当内容被拖到正文区域的顶部或底部时,邮件中的长草稿会自动滚动。标准文本视图和输入框会自动采用这 种方式。
    提取和展示要能展现出放置的丰富内容: 例如,你的App可以为一个图表提供的几种表现形式。如果你的App支持图表,它可以提取并显示出原始 图表对象。如果你的 App 不支持图表,它可以提取并显示图表的图像版本。
    只提取放置内容的相关部分: 例如,如果用户想将某个联系人拖到邮件的收件人中,只需提取名称和电⼦子邮件即可,而不用联系人的地址信息。
    当内容放置后,在表视图和精选视图中显示占位符: 占位符会暂时指示当内容完成传输后,将停留在哪里。
    在放置内容需要时间进行传输时显示进度: 默认情况下,当App程序之间发⽣耗时的转移时,系统会显示一个App模式警报。可以使用自定义进程的显示方式,比如在表视图或集合视图中显示占位符的进度指示器,这样就不会阻止用户使用你的 App 了。请注意,只有用户放下内容后传输才会开始。
    为放置的内容启动一个进程时提供反馈: 如果用户将内容放置到发起任务的一个控件上,例如,将视频上传至共享站点,就会显示任务已经开始并通知用户其进度。
    放置失败时通知用户: 如果放置的内容不能插入,可能是因为文件传输中断,要通知用户放置内容失败。用适当的样式来放置文本: 当原位置和目的地支持相同样式的文本属性时,放置的文本应该保留其原始字体、字型、大小和其他属性。否则,放置文本应该采用目的地的样式。
    提供一种直观的方式,当用户不能立即撤销拖放时,可以选择退出: 例如,一个分享性的App会在放下内容之前提供一个中间的附加表。这个附加表可以用来提供其他内容,比如状态消息(如内容数量和大小),同时还提供一个取消按键。当照片被拖进共享的照片流时, App 就显示了这种方式。

3.6 反馈

反馈让用户知道App现在做什么,发现他们下一步应该做什么,并且了解行动的结果。

将状态和其他类型的反馈整合到你的界面中: 理想情况下,用户可以在不操作或不被打扰的情况下获得重要信息。

避免不必要的警报框: 警报框是一种强大的反馈机制,但应该只用于传递重要的信息。如果用户看到太多包含无关紧要信息的警报框,他们很快就会学会忽略以后的警报。

  • 触觉反馈(Haptic Feedback)
    触觉技术为用户提供了一种身体接触的触觉反馈,从而获得用户关注并强化他们的操作。

请谨慎使用触觉反馈: 过度使用会引起认知混乱并降低反馈的重要性。

一般来说,触觉反馈是为了响应用户发起的操作: 用户很容易将触觉与他们所发起的操作联系起来。随意的反馈会让用户感到不连贯,以及造成误解。

不要重新定义反馈类型: 为确保用户有一致的体验,请按照预期使用反馈类型。

调整好给用户触觉反馈的视觉体验: 提供视觉和触觉的反馈,以在操作和结果之间建立更深的联系。确保动画是清晰准确的,在视觉上符合用户的感受 。

不要依赖单一的交流方式: 并不是所有的设备都支持全方位的触觉反馈,如果可以选择的话,用户完全可以在设置中禁用该功能。此外,只有当设备激活,而你的App是在当前页面时,触觉反馈才会发生。通过视觉和听觉的提示来补充触觉,以确保重要信息不不会被遗漏。

当视觉反馈被遮挡时,用户可以使用触觉: 比如将一个对象拖到屏幕上的某个位置,被用户的手指遮住了。这时候生成反馈,让用户知道何时到达特定的位置。

在开始反馈之前,确认系统已准备就绪: 因为在提供触觉反馈时可能会有⼀些延迟,所以最好在请求反馈之前确认系统已提前加载。否则,触觉反馈可能有很长的延时,导致用户感觉他们的操作与屏幕上看到的东西没有联系。

同步触觉和音效: 触觉不会自动与声音同步。如果你想使用音效的话,要让它和触觉同步。

3.7 文件处理

用户在创建、查看和操作文件时不用考虑文件系统。如果你的App需要运行文件时,尽可能地减少文件处理的时间。

让用户相信文件即时保存,除非主动取消或删除: 一般来说,不要让用户去即时保存文件。相反,在用户打开和关闭文件,以及切换到另一个App程序时,会定期自动地保存更改。在某些情况下,例如在编辑现有文件时,保存和取消项可能仍然是有意义的,因为它们可以帮助确认何时编辑的内容已经被保存。

不要提供创建本地文件的选项: 用户通常希望所有的文件都可以在他们的所有设备上使用。只要有可能,你的App就应该通过iCloud等服务来支持云文件存储。

设计一个直观的图形文件浏览界面: 理想情况下,使用户熟悉的系统文档应用来浏览。如果你设计了一个自定义的文件浏览器,请确保它是直观且高效的。

让用户在不离开App程序的情况下预览文件:

与其他App共享文件: 如果可以的话,你的App可以通过文档的扩展功能与其他App共享文件。也可以让用户浏览和打开其他App 的文件。

3.8 手势

用户通过在触摸屏上使用手势来与iOS设备交互。操作手势与内容产生了紧密的个人联系,增强了对屏幕的直接操纵感。

一般使用标准操作手势: 用户熟悉了标准的手势,就不喜欢被迫学习不同的方法来做相同的事。在游戏和某些沉浸式App中,自定义手势是这种体验的乐趣之一。在一般App中,最好使用标准的手势,这样用户就不用费力去发现或记住它们了。

避免使用标准手势执行非标准操作: 除非你的App是一个极具可玩性的游戏,否则重新定义标准手势会变得混乱和复杂。 不要禁用系统的屏幕边缘手势: 除了标准的手势之外,一些额外的手势还可以调用全局操作,比如在屏幕的边缘通过滑动屏幕来显示主屏幕(在支持的iphone上)、控制中心、通知中心和Dock(在iPad上)。用户依靠这些手势来操作每⼀个App程序。

基于界面的导航和操作提供补充性的快捷手势,而不是替换: 只要有可能,提供一种简单、直观的方法来引导或执行操作,即使这意味着需要额外的点击。许多的系统App提供了清晰可点的返回上一页的按钮的导航栏。但用户也可以通过从屏幕的一侧滑动来返回。在iPad上,用户可以按下Home键退出到主屏幕,或是使用四指捏合的手势。

使用多点手势来增强App的体验: 虽然涉及多个手指同时操作的手势不适用于每一个App,但是他们能够丰富一些App的体验,譬如游戏和绘图App。例如,一个游戏可能包含多个屏幕控制,比如操纵杆和发射按钮,就可以同时进行操作。

  • 标准⼿手势(Standard Gestures) 用户通常期望以下的标准手势在整个系统和每个App程序中都是相同的。

点击: 激活一个控件或者选择一个对象。
拖拽: 让一个元素从一边移动到另一边,或者在屏幕内拖动元素。
滑动: 快速滚动或平移。
横扫: 单指返回上一页,显示分屏视图中的隐藏视图,滑出列表行中的删除按钮,或在轻按显示操作列表。在iPad中四指操作⽤用来切换App。
双击: 放大并居中内容或图片,或者缩小已放大过的。
捏合: 向外张开时放大,向内捏合时缩小。
长按: 当在可编辑或可选文本中执行时,显示用于光标定位的放大视图。在某些与集合视图类似的视图中操作,进入对象可编辑的状态。
摇晃: 撤销或重做

3.9 近场通信技术

NFC 使设备能够在几厘米的范围内进行无线信息交换。在支持此项功能的设备上运行iOSApp,可以使用NFC扫描来读取现实世界相关的电⼦子标签上的数据。例如,用户可以扫描一个玩具来连接视频游戏,购物者可以扫描店内的标志来拿到优惠券,或者零售员工可以扫描产品来跟踪库存。

  • 应用内标签阅读(In-App Tag Reading) 一个 App 可以支持单个或多个对象的扫描,当用户需要扫描某件东西时,系统会弹出⼀一个扫描表。

不鼓励用户接触物理对象: 要扫描标签,iOS设备只需简单地靠近标签,而不需要触碰。当要求用户扫描对象时,使用“扫描”和“靠近”等术语,而不是“点击”和“触碰”。

使用通俗易懂的术语: 一些人可能不熟悉NFC这个概念。为了让它变得通俗易懂,应避免提及技术上的、面向开发者的术语,比如核心NFC、近场通信、NFC和标签。相反,要使用大多数人都能明白的友好会话式的术语。

为扫描提供简洁的指导说明: 提供完整的带有结束标点符号的句子。确定要扫描的对象,并适当地修改文本以便进行后续扫描。保持⽂文本简短,避免截断。

  • 背景标签阅读(Background Tag Reading) 通过背景标记阅读,用户随时快速扫描标签,无需先打开应用程序并启动扫描。在支持背景标签读取的设备上,只要屏幕亮起,系统就会自动查找附近的兼容标签。在检测到标签与应用程序并将其匹配后,系统会显示一条通知,用户可以通过该通知将标签数据发送到应用程序进行处理。

支持后台和应用内标签阅读。对于使用不支持背景标记读取的设备的用户,您的应用仍必须提供应用内扫描标记的方式。

3.10 撤销和重做

许多App允许用户通过摇晃设备来撤销和重做某些操作,比如打字或删除。当以这种方式启动时,会出现一个警告框提示用户确认或取消撤销(重做)。

简要描述一下将要撤消或重做的操作: 撤销和重做的警告提示框标题会自动地包含“撤销”或是“重做”这样的前缀(以及后面的空格)。你需要在前缀后面提供额外的一两个词语用来描述什么会被撤销或是重做。例如,你可以创建警告提示,例如“撤销名称”或“重做地址更改”。

如果你已经使用摇晃手势进行撤销和重做,则不要将其用于其他操作: 尽管你可以通过编程方式给摇晃手势赋予多种功能,但却冒着让用户困惑的风险,这样就会让你的App更难用。

节制地使用撤销和重做按钮: 当App提供多种方法来执行相同的任务时,会让用户感到困惑。如果你的App真的需要专有的撤销和重做按钮,请使用标准系统提供的图标,并将它们放在一个预期的位置,比如导航栏中。

只在当前情境中执行撤销和重做操作: 撤销和重做必须对当前的(而非之前的)情境有明确直接的影响。

4.系统能力

多任务处理(Multitasking)

多任务处理功能可以让你通过iOS设备上的多任务界⾯,或者在 iPad 上使⽤多点触控⼿势,随时从⼀个 App快速切换到另⼀个App。 在 iPad 上,多任务处理功能还可以让你在“幻灯⽚”、“分割视图”或“画中画”模式下同时使⽤两个App。在屏幕右侧向左滑动可以进⼊“幻灯⽚”模式,它能让你在不离开当前App的情况下暂时性地使⽤第⼆个App,例如在使⽤Safari时快速查看你的邮件收件箱。“分割视图”模式可以让你同时使⽤两个并排的 App,⽽ “画中画” 模式可让你在使⽤另⼀个 App 时观看视频。

设计出⼀个能够在多任务环境中良好运⾏的 App 取决于你的App可以与设备上的其他App和谐共存。这意味着你的App不应该占⽤太多 CPU、内存、显示屏幕或者其他系统资源。它应该很好地应对来⾃其他App的突发⼲扰和声⾳,能快速流畅地在显示界⾯和后台来回切换,并且在后台运⾏时表现得可靠稳定。

做好随时中断的准备,并时刻准备着恢复: 你的App能在任何时候被中断。当中断发⽣时,你的App应该快速精准地保存当前状态,这样当⽤户返回时,就可以⽆缝地从他们离开的地⽅继续使⽤。

确保你的界⾯能够适应双倍⾏⾼的状态栏: ⼀些进程中的电话、录⾳、共享功能在屏幕顶部会显示额外的⼀个状态栏。在⼀些没有考虑该情况的App中,这个增加的⾼度会遮挡其他界⾯元素或者把它们挤下去。你需要在这些情况下测试你的 App,确保你的界⾯能够应对⾃如,并且仍然保持美观。

需要格外注意和应对暂停操作: 如果你的App是⼀个游戏或者媒体播放应⽤,请确保你的⽤户在切换到其他App时也不会错过任何内容。当他们切换回来时,让他们从上次离开的地⽅继续使⽤。

合理处理来⾃应⽤外的声⾳: 有时你的 App 的⾳频可能会被来⾃其他 App 或是系统的声⾳打断。⽐如,来电铃声或是被 Siri 打开的⾳乐播放列表。当这些情况发⽣时,你的App应该以⽤户预期的⽅式处理。对于重要的⾳频⼲扰,⽐如⾳乐播放、⼴播或有声读物,你的 App 应该⽴刻暂停其⾳频。对于短暂的⼲扰,⽐如GPS导航通知,你的App应该暂时降低⾳量或是先暂停⾳频等待⼲扰结束,再继续播放。

在后台完成⽤户发起的任务: 当⽤户开启了⼀个任务,即使离开了App他们也希望任务能够继续完成。如果你的App正在执⾏⼀个不需要⽤户额外输⼊的任务,请在 App 回到前台前,在后台完成它。

有效控制通知次数: ⽆论你的App在前台、后台或是完全没有在运⾏,它都能在特定的时间给⽤户推送通知。你可以使⽤通知来传达重要讯息,但是 要避免⽤户被过多通知烦扰。⽐如,当你的App在后台时,不要每完成⼀个任务就给⽤户发送⼀个通知。相反的,可以让⽤户通过返回你的 App 来 查看任务的完成情况。

通知

⽆论设备是锁屏状态还是正在使⽤中,App都能随时利⽤通知功能来提供及时和重要的信息。⽐如,通知可能会在以下⼏种情况发⽣时出现:新消息到来时、⼀个事件将要发⽣时、有新数据可获取时或是某些状态发⽣改变时。⽤户可以在锁屏上、屏幕顶部(使⽤设备时),以及通知中⼼(通过从屏幕 顶部边缘下滑呼出)看到通知栏。每个通知都包含 App 的名称、⼀个 App 图标以及⼀条消息。 通知也可能伴随着声⾳提示,以及 App 图标上⼩红点⻆标的出现和更新。

  • 提示: 通知可以是本地或是远程的。本地通知由同⼀个设备发出和接收。⼀个待办事项App可以使⽤本地通知来提醒⽤户⼀个将要到来的会议或是到 期⽇。远程通知,也叫做推送通知,来⾃⼀个服务器。⼀个多玩家游戏就可以使⽤远程通知让每个玩家知道什么时候轮到他们。
  • 通知表现 每个 App 的通知⾏为都可以在设置⾥单独管理。只要是⽀持通知功能的App,你可以完全地启⽤或禁⽤这个功能。你也可以设置通知是否在通知中⼼和锁屏上可⻅,是否在 App 图标上出现⻆标,以及选择以下⼀种通知样式
  • 横幅: 当设备在使⽤时在屏幕顶部出现⼏秒,然后消失。
  • 提醒框: 当设备在使⽤时在屏幕顶部出现,直到被⼿动关闭。

在未锁屏时点击通知,或是在锁屏时滑动这项通知,都可以实现以下⼏种⾏为:结束通知、把它从通知中⼼移除,打开发送通知的应⽤并展示相关的内 容。⽐如,在未锁屏的设备上点击⼀条新的邮件通知,就会打开邮箱并且显示新的信息。

在未锁屏时,上滑通知或让它消失,或让它关闭通知,也可将它从通知中⼼ 移除。

使⽤ 3D Touch 在⼀个通知上按压,或是在未锁屏时下滑通知⾯板,就能打开扩展的详情视图。这个视图⽀持⾃定义并且包含最多四个操作按钮。⽐如, ⼀个待办事项App可以推送⼀个含有详情视图的任务通知,上⾯有可以推迟任务和标记为已完成的按钮;⼀个⽇历事件的通知提供了“⼩睡”功能来短 暂推迟事件的闹铃。

  • 注意: ⽤户在第⼀次使⽤ App 的时候,会被要求明确地选择是否接收来⾃该App的通知。如果有⼈选择不接收通知,他们同样也能通过访问“设置” 来选择接收。

设计⼀个很棒的通知体验

提供有⽤的通知: ⽤户打开通知是为了快速获得最新消息,所以你的重点是提供有价值的信息。通知显示需要使⽤完整的句⼦,句⾸英⽂字⺟⼤写,合适的标点符号,并且不要删减你的信息——必要时系统会⾃动处理。当通知被关闭时⽤户很难再记住它们,所以要避免在通知中引导⽤户打开你的App, 进⼊指定⻚⾯然后点击指定按钮来完成⼀些任务。

**即使⽤户没有作出回应,也不要为同⼀件事情发送多个通知:**⽤户只有在⽅便时才会处理通知。如果你为同⼀件事发送了多个通知,并且填满了通知中⼼,那么⽤户就很可能关闭所有来⾃你的App的通知。不要在通知⾥包含你的App的名字和图标:系统会⾃动在每条通知的顶部显示这些信息。

提供描述性⽂字,以便在通知预览被隐藏时显示: 根据⽤户的设置,出于隐私考虑通知预览可能会被隐藏。在这种情况下,仅显示你的App图标和通⽤描述(通知是默认描述)。为了向⽤户提供⾜够的内容,你的 App 应该提供能简洁描述通知内容的⾃定义⽂本,如朋友请求,新评论,提醒或发货提供声⾳以辅助你

的通知提醒: 当⽤户没有盯着屏幕时,声⾳是⼀个引起他们注意的绝佳⽅式。当⼀个待办事项App开始执⾏重要任务时可能就会发出⼀个提示⾳。你的 App 可以使⽤⾃定义声⾳或是系统的提示⾳来达到效果。如果你使⽤⾃定义的声⾳,请确保它是简短、与众不同并且制作精良的。需要注意的是⽤户可以随时地关闭通知提示⾳。他们也可以开启伴随着声⾳的振动——这只能被⼿动开启,⽽不是通过你的 App 程序⾃动启⽤。

考虑提供⼀个详情视图: ⼀个通知的详情视图提供了关于该通知的更多信息,并且允许他们在不离开当前环境的情况下去执⾏快捷的操作。这个视图应该包含有⽤、易识别的信息,让⼈感觉就是⼀个你的App的⾃然延伸。它可以包含图⽚、视频以及其它内容,它还能在显示时动态更新。⽐如,⼀个拼⻋ App 就能够在该窗⼝显示⼀张地图,并标出⼀辆⻋正在朝着你当前的位置驶来。

提供直观、有⽤的操作: ⼀个通知的详情视图能最多包含四个操作按钮。这些按钮⽤来执⾏常⽤、省时的任务,⽽不⽤打开你的 App。使⽤简短、英⽂⾸字⺟⼤写的名称明确地描述该操作的含义。⼀个通知的详情视图还能在屏幕上呼出⼀个键盘⽤来收集执⾏操作需要的信息。⽐如,⼀个通讯 App 可以允许⽤户直接在新消息通知的详情视图上回复。

避免展示破坏性的操作: 要在通知详情视图⾥展示破坏性操作之前请仔细考量。如果你必须展示它们,确保⽤户拥有⾜够的上下⽂信息,以避免出现意外后果。破坏性的操作应该以红字呈现。

⻆标

⻆标是⽤来补充说明通知,⽽不能⽤来表示重要的信息: 需要注意App的⻆标可以被关闭。如果你的App依赖于通过⻆标来传达重要信息,就等于你在冒着⽤户会错过这些信息的⻛险。

⻆标仅⽤于通知: ⻆标不应该⽤于显示其他类型的数字信息,例如空⽓质量,⽇期,股票价格或天⽓。

保持⻆标实时更新: 当收到对应的消息时要⽴即更新你的App的⻆标数字。⽤户只有在看到确切提示之后才会进⼊你的App查看。请注意,将⻆标上的数字清零意味着同时在通知中⼼移除所有相关的通知栏。

打印

你的 App 可以利⽤系统⾃带的 AirPrint 技术来使⽤兼容的打印机实现图⽚、PDF 以及其它内容的⽆线打印。当⽤户在有 AirPrint 功能的应⽤内浏览可打印的内容时,他们可以通过点击导航栏或是⼯具栏上的操作按钮打开选项⾯板,然后再点击打印按钮来打开打印视图。 这个视图提供了⼀个可⽤打印机的列表以及⼀些⾃定义选项,⽐如打印的份数、⻚⾯范围,并且提供了⼀个开始打印的按钮。 让打印选项易于发现: 如果你的App有⼀个⼯具栏或是导航栏,请使⽤系统提供的操作按钮来打印。⽤户对这个按钮更加熟悉,并且在其它应⽤中也 是⽤它来打印。如果你的 App 没有⼯具栏或是导航栏,那么设计⼀个⾃定 义的打印按钮来代替。

只在可以打印的情况下才允许打印: 如果在你的屏幕上没有任何内容或是没有可⽤的打印机,那么在⽤户点击操作按钮后禁⽤打印按钮。如果你的App使⽤⾃定义的打印按钮,在⽆法打印时让其不可点击或是隐藏它。

提供有⽤的打印选项: 思考⽤户在打印你的内容时会想要指定哪些选项。可以考虑选择⻚⾯范围和打印份数的选项。也可以启⽤附加的选项,⽐如双⾯打印,如果这样有意义并且打印机也⽀持的话。

快速查看

在你的app中,快速查看功能可以让⽤户预览Keynote、Numbers、Pages、PDF⽂档、图⽚以及其它类型的⽂件,即使你的应⽤并不⽀持这些⽂件格式。也可以使⽤该功能来查看邮件的附件。在下载附件之后,邮件信息中会显示附件的图标和⽂件名。点击图标就能预览附件。

在当前环境下合理地展现预览窗⼝: 在 iPhone 上,如果你的 App有导航栏,让预览视图下移留出位置给导航栏,就和你的App 其它层级的视图⼀样。 在iPad或是没有导航栏的App内,⽤全屏有导航栏的模态视图中打开预览视图。通过以上两种⽅法,导航栏就能提供退出快速查看状态的按钮,以及预览特定的⼀些按钮,⽐如分享和标记这样的操作。如果你的App包含⼀个⼯具栏,那么预览特定的按钮就会在⼯具栏出现⽽不是导航栏。

评级和评价

评级和评价可以帮助⽤户在考虑是否尝试App时做出合理的决定。良好的评级和积极的评论意味着你的App能获得更多下载,⽤户反馈可以让你深⼊了解你的 App 在现实世界的使⽤情况,从⽽更好地帮助你实现未来的开发⼯作。提供良好的整体体验是提升评级和⿎励积极评价的最佳⽅法,但在适当的时候要求提供反馈也很重要。在请求⽤户对你的App进⾏评级时,请牢记这些注意事项:

在⽤户与你的 App 有⼀定程度互动后再请求⽤户对其进⾏评级: 例如,在达到某个游戏等级或完成某个⽣产任务时提示⽤户。绝对不要在⽤户第⼀次使⽤或者进⾏新⼿引导时请求评级。给⽤户充⾜的时间,让他们对你的 App 有⾃⼰的意⻅。

不要中断⽤户: 特别是当他们在执⾏紧急或压⼒很⼤的任务时。寻找合适的时机发送评级请求。

不要变得让⽤户讨厌: 重复的评级提示可能会刺激,甚⾄可能会让⽤户对你的App产⽣负⾯情绪。评级请求⾄少间隔⼀周或两周,并在⽤户与你的 App 有进⼀步互动后可以再次提示。

系统评级和审查提示 系统为 App 提供了⼀致且不⼲扰的⽅式来请求⽤户进⾏评级和评论。要使⽤此功能,你只要识别你的⽤户在体验中反馈意⻅的位置。如果⽤户尚未提供反馈,并且你的App最近也没有提出请求,那么系统将显示⼀个应⽤内提示,请求⽤户进⾏评级和评论。⽤户可以点击提供反馈或关闭提示。(在 “设置”中,⽤户还可以选择不接收所有已安装应⽤的评级请求提示。)在365 天的周期内,系统 ⾃动限制每个App的提示显示次数为三次。

最好使⽤系统提供的提示: 系统的评级提示提供了⼀个熟悉,有效的体验,旨在使⽤户的影响最⼩。不要使⽤其他控件来请求反馈: 由于系统限制了评级提示出现的频率,所以尝试⽤控件请求反馈可能会导致不显示评级提示。

提示: 回复⽤户评论是⼀个与⽤户沟通,解决问题,并可能提⾼App评级的 好⽅法。

截图

⽤户可以通过截取屏幕截图来捕获屏幕上显示的内容。从iOS11开始,屏幕截图在被截取后会在屏幕底部以预览形式简要显示。⽤户可以将预览图滑动 到屏幕边缘来关闭它(如果⽤户没有任何操作,预览窗⼝会在⼏秒钟后⾃动关闭),点击预览窗⼝即可快速访问即时标记和共享⼯具。屏幕截图被保存 到“照⽚”中的“截图”专辑中。

截取本地屏幕时,请勿更改 App 的界⾯: 系统提供的屏幕截图功能在截取截图时提供了⾜够的界⾯和功能。⾃定义截图启动界⾯的更改和功能是重复的,不必要的,可能会令⼈困惑。如果你的 App 适⽤该功能,当其他⽤户使⽤该设备截取截图时,可以提醒⽤户。

电视提供商

你的 App 可以与 TV App 和 single sign-on 进⾏交互,为⽤户提供⾼度⽅便和⼀致的娱乐体验。

TV App 交互 TV App 可以全⾯访问系统的收藏,最近播放的,以及推荐的电影和电视节⽬。

开始并恢复播放 当⽤户请求在 App 中重放内容时,TV App 会⾃动打开你移动端的 App, 并向你的移动设备发送通知。

确保平滑过渡到你的App: 转换到移动设备上的App时,TVApp会变成⿊⾊,且不会显示启动屏幕。移动端的App应该在开始播放或恢复内容之前⽴即呈现⿊屏,保持视觉连续性。

⽴即显示预期内容: ⽤户期望在你的App转换完成后,所选内容就开始播放(从App的⿊屏直接跳到播放内容)。避免提供闪屏,详细屏幕,介绍 动画或任何其他花费时间的障碍。这在恢复播放时尤为重要。

不要询问⽤户是否要恢复播放: 如果可以恢复播放,则应⾃动执⾏此操作⽽ ⽆需提示确认。

确保为正确的⽤户播放内容: 如果你的App⽀持多个⽤户配置⽂件,TVApp可以在发出播放请求时指定配置⽂件。开始播放之前,你的App应⾃动切换⾄这个设定。如果播放请求没有指定配置⽂件,则请求⽤户在播放开 始之前选择⼀个,以便将来可以直接提取此信息。

载⼊内容 如果加载需要两秒以上,请考虑显示⼀个带有动态加载图标的⿊⾊屏幕,且不没有其他内容。

尽可能避免使⽤加载屏幕: 如果您的内容快速加载,则不需要加载屏幕。

尽快开始播放: 如果需要加载屏幕,加载⾜够的内容之后再开始播放,并继续在后台加载剩余的内容。

设计⿊⾊加载屏幕: 在内容播放的过渡期间,可能会显示加载屏幕。为了与TVApp的淡⼊淡出功能相融合,所以应该显示⿊⾊屏幕。 加载屏幕上的内容最⼩化: 如果你⼀定要让加载屏幕上包含品牌或图像,请尽量保持⿊⾊背景并⽆缝衔接播放。

退出播放 退出播放后,⽤户仍然在你的 App 中,⽽不是返回到 TV App。不要让⽤户迷失⽅向。

显示⼀个有相关内容的屏幕: 退出播放时,保留⽤户正在观看内容的屏幕视图,并包含⼀个恢复播放的选项。如果详细信息屏幕不可⽤,请显示⼀个包含⽤户正在观看的内容或你的 App 主菜单的菜单。

准备即时退出: 在收到回放通知后尽快准备退出屏幕,以便⽤户即使在播放开始后⽴即退出,也可以看到退出画⾯。

单点登录 许多流⾏的电视提供商允许⽤户在系统级别登录他们的帐户,消除了逐个应⽤验证身份的需要。如果你的App需要电视提供商进⾏身份验证,请使⽤ 此功能提供最有效的⼊⻔体验。

当⽤户在系统级别登录时,避免显示退出选项: 如果你的App必须包含退出选项,则调⽤该选项,将⽤户指向“设置”>“电视提供商”以退出其帐户。

不要通过调整隐私控制来指示⽤户退出: “设置”>“隐私”中的电视提供商控制不是退出机制。这些设置可以让⽤户管理可访问其电视提供商帐户的 App。