模态是一种以临时模式呈现内容的设计方法,会阻断用户之前的、当前的场景,且需要明确的操作才能关闭或退出。以模态方式去呈现内容可以:

  • 帮助人们专注于独立任务,或一系列相关联的选项
  • 确保人们接收到关键信息,并在必要时对其进行操作

1_GciCCA1VPCk3JqwI6tO4GQ@2x.png

iOS 提供了提醒、活动视图(或分享视图)和操作表单,可在特定情况下使用。要在应用中显示自定义模态内容,iOS 13 及更高版本支持以下几种演示风格。

表单

表单样式显示为卡片,它会覆盖一部分下层的内容,并模糊掉所有未覆盖的区域,以防止用户与它们交互。在当前卡片后方,可以看到父视图或上一张卡片的上边缘,以此帮助人们记住打开卡片时暂停的任务。人们可以通过以下方式关闭卡片:

  • 从屏幕顶部向下滑动
  • 当卡片内容滚动到顶部时,从屏幕上的任意位置向下轻扫
  • 点击按钮

对没有复杂任务的非沉浸式模态内容,可以使用表单。

全屏

全屏样式会覆盖整个屏幕。上一个视图被完全覆盖,最大限度地减少了视觉干扰。人们通过点击某个按钮来关闭全屏模态视图。

对沉浸式的内容(如视频、照片或摄像机视图)或全屏演示的复杂任务(如标记文档或编辑照片),使用全屏模态视图。

备注 如果你是在拆分视图窗格、弹窗或其他非全屏的视图中,想要使用当前上下文模态视图的风格去展示模态内容,则应当转而使用表单,以此在紧凑环境中显示模态内容。

必要时才使用模态。只有在需要人们集中注意力,进行选择或执行与当前任务不同的任务时,才能使用模态。模态的体验会将人们带出当前场景,而且需要操作才能将其关闭,因此,只有当它有明确收益时,才有必要使用它。

保留提醒弹窗以提供基本的、理想的可操作信息。通常,提醒弹窗出现是因为发生了问题。由于提醒弹窗会中断体验,且需要点击才可解除,因此,必须让人们感觉这种打断是有必要的。有关指导,请参阅提醒弹窗。

保持模态任务简单、简短和集中。避免在应用中创建应用。如果模态任务过于复杂,则人们可能在进入模态场景后,忘记他们暂停的任务。尤其要警惕创建包含层级视图的模态任务,人们可能会因此迷路且忘记返回的路径。如果模态任务必须包含子视图,请提供结构层次的单路径、清晰的完成路径。除了用于完成的任务,其他任何任务不能使用「完成」按钮。

始终包含用于关闭模态视图的按钮。例如,你可以使用「完成」或「取消」。保留一个用于辅助技术访问模态视图的按钮,并提供关闭手势的替代选择。

必要时,在关闭模态视图之前请求确认,以此帮助用户避免数据丢失。无论用户使用手势还是按钮来关闭视图,如果操作可能导致用户生成的内容丢失,则需要提供一个操作表单来向用户解释情况,并提供解决问题的方案。

不要在弹窗上方展示卡片。尽管你可以在弹窗中显示卡片,但不应在弹窗上方显示任何内容(除了提醒)。在极少数情况下,在对弹窗执行操作后,需要展示卡片,则应当在展示该卡片之前,先关闭弹窗。

通常会显示定义模态任务的标题。人们进入一个模态任务的同时,他们也离开上一个场景,因此最好明确一下新的场景。你还可以在视图的其他部分提供文本,以便更全面地描述任务、提供指导。

让模态视图的外观与应用保持协调。例如,当模态视图包含导航栏时,它应使用与应用中导航栏相同的外观样式。

选择与应用一致的模态过渡样式。使用与应用协调的过渡样式,并增强对临时场景转变的认识。默认过渡将模态视图从屏幕底部向上滑动,并在关闭时向下滑动。在整个应用中使用一致的模态转换样式。

开发者指南,请查看 UIViewControllerUIPresentationController