iOS 11 人机界面中文指南(二)

自译外文 分类: 规范/资料 版权: 原作者: 苹果
3370 27 17 0
2017-09-14
9.5
编辑推荐

写在前面:新的苹果规范之前已经发出来了,于是连夜把整个规范都看了一遍。并计划一章一章的翻译。翻译的同时也参考了各位前辈@喵大神经的IOS10规范的翻译以及ISUX之前IOS 9规范的翻译,对其中一些名词理解并使用自己觉得可能更通俗的说法进行翻译,如果有哪里不对的,还请各位轻喷,帮忙指出问题,我会及时更正的,谢谢。


第一章内容链接点此进入


第二章 应用体系结构


一、辅助功能(Accessibility)


iOS提供了大量的辅助功能来帮助视力障碍、听力障碍以及其他残疾群体,大多数以UIKit为基础的应用能够具有辅助性,为大众提供了平等的使用体验将会吸引更多的用户来使用你应用。


Reduce Transparency


Image title



VoiceOver


Image title



Button Shapes


Image title


为图片、图标和界面元素提供可选择的文字标签。文字标签可选择是否可见,但是用户能让VoiceOver能够通过声音描述屏幕上有什么,让视障用户能够轻易的使用导航。


相应的可访问设置。如果你的应用使用UIKit来实现用户界面,文字和界面元素就会自动适应至相应辅助功能的偏好设置,例如加粗和加大字体。你的应用也应当在适当时检查和响应辅助功能的偏好设置,例如当”减弱动态效果(reduce motion)”的开关被打开时。采用自定义字体的应用应该和系统文字的辅助特性保持一致。


使用辅助功能测试你的应用。除了文字和动效的变化,辅助功能选项还能改变对比度、反转颜色、降低透明度等。为那些需要这些功能的用户启用设置,观察你的应用将会如何改变以及是如何运作的。


包含隐藏式字幕(Closed captions)和口述影像(Audio descriptions)。隐藏式字幕有助于听障以及重听用户感知视频中的对话和其他可听内容。口述影像为视力受损的用户提供了重要视频内容的口头叙述。


想要获取更多信息,请查阅 iOS Accessibility 和 Accessibility Programming Guide for iOS


二、加载(Loading


当内容在加载时,一片空白静止的屏幕就好像你的应用被冻结了,让用户感到困惑和失望,而且很有可能使用户离开你的应用。


Image title


明确加载的状态。至少展示一个activity spinner来表明有任务在进行中,更佳的做法是,显示明确的进度,这样用户就有心理预期,能知道他们还需等待多久。尽可能快地显示内容。不要让用户在看到所希望的屏幕画面前去等待内容的加载,立刻显示屏幕画面,然后通过占位符、图形或者动画明确告知用户哪些内容还未显示。当内容加载成功后,替换占位元素。可能时,比如当动画在播放时或是用户在层级菜单或菜单导航时,在后台预加载即将要展现的内容。


通过启发或取悦用户来填充加载的时间。尝试展示游戏诀窍、令人愉悦的动画或者有趣的占位图。


自定义加载画面。虽然通常有标准的进度指示,但他们有时也可能会是脱离使用环境的。尝试设计符合你的应用或游戏风格的自定义动画和元素,以实现一个更沉浸式的体验。


请参阅 Progress Indicators


三、模态视图(Modality


模态视图突出焦点,因为用户只有在完成当前的任务或关闭一个信息或视图之后才能去做其他事情(模式通过阻止人们完成其他任务,直到他们完成任务或关闭消息或视图,从而创造焦点)。操作列表、警告框和活动视图都提供了模态化体验。当屏幕上出现模态视图时,用户必须通过点击按钮或以其他方式才能退出模态体验。例如在日历中编辑活动或是在safari浏览器中选择书签。模态视图可以占据整个屏幕、整个父视图,例如气泡弹出框(popover)或者屏幕的一部分。模态视图通常都含有“完成”和“取消”按钮来退出视图。


Image title


Image title


尽量减少模态视图的使用。一般来说,用户更喜欢于应用进行非线性的交互。只在必须要引起用户注意时,某个任务必须被完成或是确认关闭时,或保存重要数据时才考虑使用模态视图。


提供一个明显且安全的退出模态任务的方式。确保用户在他们关闭模态视图时始终知道将导致的结果。


保持模态任务简单、简短并且高度集中。不要在你的应用中创建另一个应用。如果模态任务过于复杂,用户在进入模态视图时就会看不到他们本想执行的任务。当创建一个包多层级视图的模态任务时。请格外谨慎,因为用户可能会在多个视图中迷失并且不知道如何返回。如果模态任务必须含有子视图,那么请提供单级的跳转路径以及清楚的完成路径。避免在完成任务之外的地方使用标有“完成”的按钮。


如果可能的话,请使用能够明确说明任务的标题。你也可以在视图的其他部分提供更全面描述任务或者提供指导的文字。


只有在传达关键以及需要操作的信息时才使用警告框。警告框会中断体验,并且需要单击才能关闭,所以必须要让用户觉得这个打断是有必要的。请参阅Alerts


尊重用户的通知偏好设置。在设置里,用户可以设定他们想要如何接受来自你应用的通知。遵循这些偏好设置,以免用户想要完全的关闭来自你应用的通知推送。


不要让浮出层上显示模态视图。除了警告框以外,其他任何内容都不应该覆盖在浮出层上。在极少数情况下,你需要让模态视图在用户完成浮出层内的操作之后弹出的话,那么请先关闭浮出层再展示模态视图。


让模态视图的视觉风格与你的应用相符。模态视图可能包含一个导航栏。在这种情况下,请使用与你应用内的导航栏一样的外观。


选择合适的模态视图样式。你可以使用到以下任何一种样式。


Image title


全屏模式。覆盖整个屏幕。用于可以在前后模态视图中完成的潜在复杂任务。


Image title


页面模式。部分覆盖横向放置的较大设备上的基础内容。所有未覆盖的区域都将变暗。以防止与他们的交互,在较小的设备上以纵向方向覆盖整个屏幕。用于可以在模态视图的使用环境中完成的潜在的复杂任务。


Image title


表单模式。显示在屏幕中央,但如果键盘可见,则可能会重新定位。所有未覆盖的区域都会变暗,以防止与他们的交互。可能在较小的设备上覆盖整个屏幕,用于收集信息。


Image title


当前视图模式。显示为与其父视图相同的大小。用于在拆分视图窗格、弹出窗口或其他非全屏视图中显示模态内容。


选择合适的过渡方式显示模态视图。使用与应用风格相符的过渡方式来加强用户对当前内容转变的认知。默认的过渡方式让模态视图垂直地从屏幕底部向上滑出,然后再被关闭时下滑。弹出样式的过渡是指当前视图水平滑出,显示出模态视图,看起来就好像模态视图藏在当前视图的背后。当模态视图被关闭时,原先的视图便重新滑回来。在你的应用内用使用统一的模态过渡方式。


更多详情,请参阅 UIViewControllerUIPresentationController


三、导航(Navigation


用户往往注意不到一个应用的导航,除非它没有达到他们的预期。你的工作就是创造能够支持应用结构和目的的导航,并且让用户注意到导航的存在。导航应该让用户觉得自然和熟悉,并且不应该主宰界面或者抢走内容的风头。在iOS中,主要有三种导航结构。


1.分层导航:


Image title



在每个页面都做一次选择,直到到达目标位置。要想去另外的目标位置,你必须回溯你的步骤或是从头开始重新选择。“设置(Settings)”和“邮件(Mail)”就是采用这种导航结构。


2.扁平导航:


Image title



在不同的内容类别间切换。“音乐(Music)”和“应用商店(App Store)”就是采用这种导航结构。


3.内容驱动或是体验驱动式导航:


Image title


在内容中自由的穿梭,或是内容本身定义导航。游戏、阅读类应用以及其他沉浸式应用一般都采用这种导航结构。


有些应用结合了多种导航方式。例如,采用了扁平导航的应用也可能在每个类别里使用层级导航。


始终提供清晰的路径。用户应该始终知道他处于应用中的什么位置,以及如何去往下一个目标位置。无论导航的样式如何,对于通过内容的路径,逻辑性、可预测性,易追溯性是至关重要的。一般而言,为用户提供到达每个页面的途径。如果他们需要在多个的情景下看到某一屏的内容,那么考虑采用操作列表、警告框、浮出层或是模态视图的形式展示这些内容。


设计一个能简单快速的访问到内容的信息结构。合理的组织你的信息结构,保证用户只需用最少次数的点击、横扫和屏幕间跳转就能访问相应的内容。


使用触碰手势来制造流畅感。让用户能轻松的在界面内跳转,而感受不到阻力。例如,你可以让用户在屏幕边缘轻扫,而返回到上一屏。


使用标准的导航组件。如果可能,使用例如页面控件、标签栏、分段控件、表格视图、集合视图和拆分视图等标准导航控件。用户已经熟悉了这些控件,他们会很自然地就知道如何玩转你的应用。


使用导航栏访问分层数据内容。导航栏内的标题能够显示当前的层级位置,使用返回按钮能够轻易的回到上一个位置。请参阅Navigation Bars


使用标签栏来显示内容和功能相似的类别。标签栏让用户能够快速简单地在不同类别中切换自如,而不受当前位置的限制。请参阅Tab Bars


当你有多个同类型的页面时,请使用页面控件。当你有多种同类型的页面,页面控件能够清楚的表达总页数,以及当前所在页。“天气(Weather)”就使用了页面控件来显示特定地理位置的天气页面。请参阅Page Controls


提示:分段控件和工具栏不具备导航功能。使用分段控件能够将信息整理到不同的类别。使用工具栏为当前内容提供交互控件,请参阅Segmented Controls Toolbars


四、用户引导(Onboarding


应用的启动时间是你接触新用户并与老用户再次连接的第一个时机。请设计一个快速、有趣并有教育意义的启动体验。


Image title


提供启动画面。应用打开时,启动画面会在应用加载初始内容的同时进行显示,让用户感觉你的应用能够快速响应。因为这个画面很快就会被应用的首屏替代,所以它应该尽量与首屏相似,因此,除了可地方化的文本和交互性元素外,它应该与首屏非常相似。了解更多,请参阅Launch Screen


选择适当的显示方向启动。如果你的应用同时支持竖屏和横屏模式,那么应该以设备当前方向启动。如果你的应用只在一个方向上运行,则应该始终以该方向启动,并在需要时让用户旋转设备。无论设备是向左旋转还是向右旋转,除非有迫不得已的原因,否则处于横屏模式的应用应该使用正确的定位。请参阅 Adaptivity and Layout


快速使用。避免出现延迟,用户使用应用实践的启动画面,菜单和说明。反之,允许用户快速进入应用内,如果你的应用需要教学或者介绍步骤,为用户提供一个跳过的选项并且老用户可以选择不要展示这些。


预估用户可能会需要的帮助。主动考虑用户何时会遇到麻烦。例如,一个游戏可以在暂停或是在角色很难升级时提供一些诀窍。允许用户重新播放教程,以防他们第一次错过了某些内容。


只在教程中展示最关键的内容。虽然为新用户提供引导没错,但是教学不能成为优秀的应用设计的代替品。最重要的是,确保你的应用是易懂的。如果你的应用需要过多的引导,那么请重新审视你的设计。


让学习过程变得令人愉悦且易于领悟的。通过(让用户)操作来学习比(让用户)阅读一长串用法说明来的更有趣和有效。 在一定情境中,通过动效和交互循序渐进地教学。避免展示看起来似乎可交互的屏幕截图。


避免在一开始就要求用户设置资料。用户期望应用马上能操作。为大多数人设计你的应用,然后让剩下少数需要不同配置的人,自己调整参数来满足他们的需求。尽可能地从设备设置和默认设置,或通过同步服务,如iCloud获取设置信息。如果应用必须要求用户设置信息,那么在第一次使用时提醒用户,并让用户稍后在应用设置中进行修改。


避免在应用内展示许可协议和免责声明。在你的应用被下载之前,在App Store显示许可协议和免责声明。如果你必须将这些东西放在你的应用里,那么用一种自然的方式融入它们,以避免干扰用户体验。


在你的应用重新启动时保存之前的状态。不要让用户追溯之前的应用定位。保存并且复原应用的状态,这样用户就能从他们上次离开的位置继续操作。


不要太快或是太频繁地要求用户对你的应用评分。太快或是太频繁地要求评分会让人厌烦,可能会减少您收到的有用反馈的数量。为了促进得到经过深思熟虑的反馈,在要求评分之前,给用户足够的时间直到他们形成对应用的看法。始终提供退出评分提示的选项,并且永远都不要强迫用户对你的应用进行评分。


不要鼓励重启。重新启动耗费时间并且使你的应用看起来似乎不是那么靠谱和易用。如果你的应用出现储存或者其它问题,导致它难以运行只能重启系统,那么你应该解决这些问题。


五、许可请求(Requesting Permission


Image title


必须是用户对应用予以授权,应用才能获取用户的个人信息,包括当前位置、日历、联系人信息、提醒事项以及照片。 虽然用户喜欢在使用能够获得这些信息的应用时带来的便利,但他们还希望能够掌控自己的私人数据。例如,用户喜欢能够根据实际位置自动标记照片,或是寻找附近的朋友,但他们同时也希望能有关闭此类功能的选项。


只有在应用确实需要获取时才向用户请求获取个人数据。用户会对获取自己个人信息的请求产生怀疑是很自然的,尤其是他们发现当前的请求没有明显的必要时。请确保授权请求只在用户在使用某些确实需要个人数据的功能时才出现。例如,一个应用只有在启用位置跟踪功能时才请求获取当前位置。


当请求目的不明显时向用户解释为什么你的应用需要这些信息。你可以在系统提供的授权请求警告框上添加自定义文本。使用详细明确且礼貌性的文本,这样用户就不会感到有压力。保持文字言简意赅,并且使用例子。无需包含你的应用名字。系统已经替你在警告框上说明了应用名称。


在应用一启动时就请求授权获取那些对运行应用至关重要的信息。如果用户明确的知道你的应用只有获取这些个人信息才能运行,那么他们就不会感到不安。


请不要在不必要时请求位置信息。在获取位置信息之前,检查系统以查看位置服务是否已经被启用。使用这个知识,可以延迟提醒,直到需要获取该信息的功能时才进行提醒,甚至可能完全避免提醒。

学习如何实现位置特性,请参阅 Location and Maps Programming Guide


六、设置(Settings)


有些应用可能需要提供设置或配置选项,但大多数应用可以避免或推迟设置。成功的应用能够一开始就让大多数用户很好的使用,并且同时提供了一些便捷的途径去调节体验。当你设计的应用满足大部分用户的需求,你就可以减少他们对设置的需求


Image title


推测你可以从系统中得到什么。如果你需要关于用户、设备或是环境信息,那么尽可能地向系统请求而不是直接询问用户。比如,如果你想要知道用户的邮编来提供本地化的选项时,可以请求授权获取用户的当前位置。


在应用中慎重地设定选项的优先级。应用的主屏是一个放置关键或是常用选项的绝佳位置。次屏则适合放置只偶尔才更改的选项。


把不经常更改的设置选项放到系统设置里。系统的设置(Settings)应用是更改系统配置的核心地带,但是用户必须离开的应用才能到达那里。因此在应用中直接调节设置更加方便。如果你的应用必须提供很少需要改动的设置选项,请参阅Preferences and Settings Programming Guide中的Implementing an iOS Settings Bundle 部分。


Image title


在适当的时候提供设置的快捷方式。如果你的应用包含引导用户去设置的文本,比如“去设置>我的应用>隐私>定位服务”,请提供一个能够自动打开该界面的按钮。了解如何实现这个行为,请参阅UIApplication中的Settings Launch URL部分。




奔跑的蓝大喵

Keep moving!

50粉丝/3关注

虚拟现实和混合现实的101用户体验法则——第一部分:物理性iOS 11 人机界面中文指南(一)

扫描二维码
去手机端查看海报

京ICP备14007358号-1 / 京公网安备11010802014104号 / Powered by 2008-2018 UI.CN