区块链技术博客
www.b2bchain.cn

iOS · 系统能力 · 多任务和多窗口求职学习资料

本文介绍了iOS · 系统能力 · 多任务和多窗口求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

多任务处理允许用户用 app 切换器从一个 app 快速切换到另一个 app,并在不同的设备拥有不同的体验。例如,在 iPhone 上,多任务处理允许用户在使用其他 app 的同时还能在画中画窗口中进行 FaceTime 通话或观看视频。
iOS · 系统能力 · 多任务和多窗口

在 iPad 上,多任务处理允许用户同时查看多个不同的 app 窗口并与之交互,一个 app 也可以打开多个可交互的窗口。
iOS · 系统能力 · 多任务和多窗口
iOS · 系统能力 · 多任务和多窗口
iPadOS 可以以多种配置呈现多任务处理窗口,支持多种工作流程。该系统还提供多任务控制(用于切换多任务配置)以及 app shelf(可访问 app 中所有打开的窗口)。
iOS · 系统能力 · 多任务和多窗口

可以选择以下配置之一在 iPad 上打开多任务窗口:

  • Slide Over(测滑视图):第二个窗口覆盖在全屏展示的第一个窗口之上。用户可以更改 Slide Over 窗口在屏幕的位置,或将其隐藏在屏幕外方便稍后检索。Slide Over 中还可以打开多个窗口,形成一个堆栈。 iOS · 系统能力 · 多任务和多窗口 <tr/>
  • 拆分视图:并排显示两个窗口,用户可以调整窗口相对大小并与两者进行交互。用户在拆分视图中查看并排的窗口时,还可以打开第三个窗口。
    iOS · 系统能力 · 多任务和多窗口
    <tr/>

  • 画中画:视频显示于悬浮于全屏 app 上方的可移动、可调整大小的窗口中。
    iOS · 系统能力 · 多任务和多窗口

Note
App 不控制多任务配置或接收用户选择的任何指示。

人们希望在设备上使用多任务处理,如果你的 app 不允许,他们可能会认为出错了。除了极少数例外(比如一些在 iPad 上全屏的 app),每个 app 都应该能很好地处理多任务。有关指导,请参阅支持多任务处理。

为了帮助你的 iPad 应用能正确响应分屏浏览或测滑打开窗口,请确保它能够很好地适配不同的屏幕尺寸。有关的开发人员指南,请参阅iPad 上的多任务处理。要了解人们如何使用 iPad 多任务处理功能的更多信息,请参阅在 iPad 上使用多任务处理。

除了确保 app 能够很好地处理多任务之外,还需要额外实现支持多窗口。有关指导,请参阅【在 iPad 上启用多个窗口](https://developer.apple.com/design/human-interface-guidelines/ios/system-capabilities/multitasking/#enabling-multiple-windows-on-ipadScenes](https://developer.apple.com/documentation/uikit/app_and_environment/scenes)。)。有关的开发人员指南,请参阅[

重要提示
若要在 iPad app 的 Mac 版本中启用多个窗口,就必须在 iPad 上实现多个窗口。有关指导,请参阅 Mac Catalyst。


支持多任务处理

为了很好地支持多任务处理,你的 app 需要与设备上的其他 app 和谐共存,最大限度地减少对 CPU、内存、屏幕空间和其他系统资源的使用。在其他 app 的音频突然中断时,支持多任务处理的 app 可以很好地进行响应,快速平稳地切换后台的做法能够带来良好的体验。

为中断和继续做好准备。用户可能随时中断在你的 app 中的进程。当中断发生时,你的 app 需要快速、准确地保存当前状态,方便用户返回时可以在上次中断的地方流畅地继续下去。有关的开发人员指南,请参阅响应 app 的启动。

暂停需要用户集中注意力或积极参与的活动。例如,如果你的 app 是游戏 app 或音视频 app ,请确保用户切换到另一个 app 时不会错过任何内容。当他们切回来的时候能继续,就好像他们从未离开过一样。

对音频中断做出适当的反应。有时,你的 app 的音频可能会被来自另一个 app 的音频或系统本身的音频打断。例如,Siri 发起的来电或音乐播放列表可能会中断你的 app 的音频。发生此类情况时,用户会希望你的 app 按以下方式做出响应:
– 主音频通道中断时,譬如切换到播放音乐、播客或有声读物,需要无限期暂停原音频。
– 对于较短地中断,比如来自 GPS 的定向通知,可以暂时降低音量或暂停音频,然后在中断结束后恢复原始音量或继续播放。

比如听歌的同时打开了地图软件进行导航,导航发出声音的时间通常比较短暂,这时音乐的声音可以相应减弱而不是暂停,导航声音结束时恢复原音量。

有关指导,请参阅音频。

在后台完成用户启动的任务。用户开始一项任务时,他们希望能完成它,即使离开了你的 app。如果你的 app 正在执行不需要额外输入的任务,请在后台继续完成,除非用户手动暂停。

谨慎使用通知。不论你的 app 是被暂停了,还是在后台运行,又或者是根本不运行,都可以设定为在特定时间发送通知。通常情况下,不要在 app 完成后台任务前发送通知,应该让用户返回你的 app 来查看任务。有关指导,请参阅通知。


在 iPad 上启用多个窗口

从概念上讲,iPad 上的 app 倾向于使用两种类型的窗口提供内容:

  • 一个主窗口显示 app 的完整层次,并接入所有 app 的对象和与之相关的操作。例如,「邮件」用主窗口显示所有邮箱和邮件列表。
  • 一个通常是使用模型视图的辅助窗口显示特定的任务或 app 的特定区域。辅助窗口不能导航到 app 的其他区域,它专用于一种体验,且通常包含完成任务后用来关闭它的按钮。例如,Mail 使用辅助窗口来呈现单个消息。

在 iPadOS 15 及更高版本中,可以指定一种样式,来决定 app 每个窗口的初始外观。虽然用户可以在打开窗口后重新定位窗口,但指定样式可以在视觉上强化窗口任务或内容的性质。iPadOS 定义了以下样式:

  • 明显的。一种升高窗口的模态,它使周围区域变暗防止与其交互。

    在「Mail 邮件」中回复一条消息时,可以把这个模态窗口变成一个单独的窗口,以 Slide Over 或者 Split View 的方式展示:
    iOS · 系统能力 · 多任务和多窗口
    通过滑动窗口底部的条,还可以在多个 Slide Over 的窗口中切换:
    iOS · 系统能力 · 多任务和多窗口

  • 标准的。并排显示可交互的对等窗口,每个窗口都支持 app 的全部功能。

    在「日历」中,可以在不同的窗口中同时查看两个不同周的事项,还可以从一边拖拽一个事项到另一边。iOS · 系统能力 · 多任务和多窗口

  • 自动的。系统基于 app 请求窗口的上下文进行选择的样式。

Note
如果你只想让用户查看一个文件,也可以在不另外创建窗口展示它,但必须在你的 app 中支持多个窗口。有关开发人员指南,请参阅QLPreviewSceneActivationConfiguration。

用明显的样式来呈现无需打开 app 其他部分即可完成的独立任务。例如,突出显示适用于开始文档编辑或其他只用于特定文件或内容集合的任务。需要确保突出窗口是有意义的,尽量避免使用它呈现次要任务、补充操作或选择影响主要任务的项目。

用标准样式呈现同一任务或内容的多个版本。例如,「Safari」使用标准样式帮用户同时查看屏幕上的两个浏览窗口并与之交互。

iOS · 系统能力 · 多任务和多窗口

只在用户明确操作后打开一个新窗口。例如,在用户点击 app shelf / App Exposé 中的添加 (+) 按钮,或选择菜单项时才打开新窗口。在用户没有明确要求的时候打开新窗口只会使他们诧异。

App Exposé 中右上角有个小小的添加按钮:
iOS · 系统能力 · 多任务和多窗口
拖拽 app 的图标到屏幕的边缘开启多窗口功能:
iOS · 系统能力 · 多任务和多窗口
在「Pages」中,从底部上拉显示出 Dock 后,再次点击「Pages」的图标,底部会出现新建窗口的提示:
iOS · 系统能力 · 多任务和多窗口

<tr/>
确保你的 app 窗口支持启用的每项任务。多窗口可以提供方便高效的工作流程,但用户总是需要一个能访问每个 app 功能的窗口。

保留用户打开的每个窗口的状态。用户回到某个窗口时,会期望它呈现离开时的状态。有关开发人员指南,请参阅恢复 app 的状态。

考虑支持用手势在新窗口打开内容。比方说可以用捏合手势将「备忘录」里的内容展开到新窗口中。要用突出的样式呈现启用手势的过渡效果,让生成的模态窗口看上去像是自然而然展开的项目或任务。有关的开发人员指南,请参阅collectionView(_:sceneActivationConfigurationForItemAt:point:)(从集合视图项中转换)或UIWindowScene.ActivationInteraction(从其他视图的内容中转换)。

考虑提供一个方便用户在新窗口中打开内容的菜单项。如果启用了此行为,当你的 app 在 iPad 或使用 Mac Catalyst 的 Mac 上运行时,菜单中会显示“在新窗口中打开”一栏,但在 iPhone 上运行时则不会。如果在你的 app 里,这样做是有意义的,也可以提供一个在 iPhone 上可运行的替代栏,例如“显示详细信息…”,然后将“在新窗口中打开”添加到子菜单上,或者附加到按钮或按钮项的菜单中。有关的开发人员指南,请参阅 UIWindowScene.ActivationAction。

不要在提供新窗口中打开内容的方法时指明布局。因为你无法确定用户正在使用哪种多任务配置,所以请避免提供诸如“在拆分视图中打开”或“在前面打开”之类的菜单项。

在面向用户的内容中使用统一的术语——窗口。无论类型如何,系统都将 app 窗口称为窗口。使用不同的术语(包括Scene,它指的是窗口实现)可能会让用户感到困惑。

多任务处理允许用户用 app 切换器从一个 app 快速切换到另一个 app,并在不同的设备拥有不同的体验。例如,在 iPhone 上,多任务处理允许用户在使用其他 app 的同时还能在画中画窗口中进行 FaceTime 通话或观看视频。
iOS · 系统能力 · 多任务和多窗口

在 iPad 上,多任务处理允许用户同时查看多个不同的 app 窗口并与之交互,一个 app 也可以打开多个可交互的窗口。
iOS · 系统能力 · 多任务和多窗口
iOS · 系统能力 · 多任务和多窗口
iPadOS 可以以多种配置呈现多任务处理窗口,支持多种工作流程。该系统还提供多任务控制(用于切换多任务配置)以及 app shelf(可访问 app 中所有打开的窗口)。
iOS · 系统能力 · 多任务和多窗口

可以选择以下配置之一在 iPad 上打开多任务窗口:

  • Slide Over(测滑视图):第二个窗口覆盖在全屏展示的第一个窗口之上。用户可以更改 Slide Over 窗口在屏幕的位置,或将其隐藏在屏幕外方便稍后检索。Slide Over 中还可以打开多个窗口,形成一个堆栈。 iOS · 系统能力 · 多任务和多窗口 <tr/>
  • 拆分视图:并排显示两个窗口,用户可以调整窗口相对大小并与两者进行交互。用户在拆分视图中查看并排的窗口时,还可以打开第三个窗口。
    iOS · 系统能力 · 多任务和多窗口
    <tr/>

  • 画中画:视频显示于悬浮于全屏 app 上方的可移动、可调整大小的窗口中。
    iOS · 系统能力 · 多任务和多窗口

Note
App 不控制多任务配置或接收用户选择的任何指示。

人们希望在设备上使用多任务处理,如果你的 app 不允许,他们可能会认为出错了。除了极少数例外(比如一些在 iPad 上全屏的 app),每个 app 都应该能很好地处理多任务。有关指导,请参阅支持多任务处理。

为了帮助你的 iPad 应用能正确响应分屏浏览或测滑打开窗口,请确保它能够很好地适配不同的屏幕尺寸。有关的开发人员指南,请参阅iPad 上的多任务处理。要了解人们如何使用 iPad 多任务处理功能的更多信息,请参阅在 iPad 上使用多任务处理。

除了确保 app 能够很好地处理多任务之外,还需要额外实现支持多窗口。有关指导,请参阅【在 iPad 上启用多个窗口](https://developer.apple.com/design/human-interface-guidelines/ios/system-capabilities/multitasking/#enabling-multiple-windows-on-ipadScenes](https://developer.apple.com/documentation/uikit/app_and_environment/scenes)。)。有关的开发人员指南,请参阅[

重要提示
若要在 iPad app 的 Mac 版本中启用多个窗口,就必须在 iPad 上实现多个窗口。有关指导,请参阅 Mac Catalyst。


支持多任务处理

为了很好地支持多任务处理,你的 app 需要与设备上的其他 app 和谐共存,最大限度地减少对 CPU、内存、屏幕空间和其他系统资源的使用。在其他 app 的音频突然中断时,支持多任务处理的 app 可以很好地进行响应,快速平稳地切换后台的做法能够带来良好的体验。

为中断和继续做好准备。用户可能随时中断在你的 app 中的进程。当中断发生时,你的 app 需要快速、准确地保存当前状态,方便用户返回时可以在上次中断的地方流畅地继续下去。有关的开发人员指南,请参阅响应 app 的启动。

暂停需要用户集中注意力或积极参与的活动。例如,如果你的 app 是游戏 app 或音视频 app ,请确保用户切换到另一个 app 时不会错过任何内容。当他们切回来的时候能继续,就好像他们从未离开过一样。

对音频中断做出适当的反应。有时,你的 app 的音频可能会被来自另一个 app 的音频或系统本身的音频打断。例如,Siri 发起的来电或音乐播放列表可能会中断你的 app 的音频。发生此类情况时,用户会希望你的 app 按以下方式做出响应:
– 主音频通道中断时,譬如切换到播放音乐、播客或有声读物,需要无限期暂停原音频。
– 对于较短地中断,比如来自 GPS 的定向通知,可以暂时降低音量或暂停音频,然后在中断结束后恢复原始音量或继续播放。

比如听歌的同时打开了地图软件进行导航,导航发出声音的时间通常比较短暂,这时音乐的声音可以相应减弱而不是暂停,导航声音结束时恢复原音量。

有关指导,请参阅音频。

在后台完成用户启动的任务。用户开始一项任务时,他们希望能完成它,即使离开了你的 app。如果你的 app 正在执行不需要额外输入的任务,请在后台继续完成,除非用户手动暂停。

谨慎使用通知。不论你的 app 是被暂停了,还是在后台运行,又或者是根本不运行,都可以设定为在特定时间发送通知。通常情况下,不要在 app 完成后台任务前发送通知,应该让用户返回你的 app 来查看任务。有关指导,请参阅通知。


在 iPad 上启用多个窗口

从概念上讲,iPad 上的 app 倾向于使用两种类型的窗口提供内容:

  • 一个主窗口显示 app 的完整层次,并接入所有 app 的对象和与之相关的操作。例如,「邮件」用主窗口显示所有邮箱和邮件列表。
  • 一个通常是使用模型视图的辅助窗口显示特定的任务或 app 的特定区域。辅助窗口不能导航到 app 的其他区域,它专用于一种体验,且通常包含完成任务后用来关闭它的按钮。例如,Mail 使用辅助窗口来呈现单个消息。

在 iPadOS 15 及更高版本中,可以指定一种样式,来决定 app 每个窗口的初始外观。虽然用户可以在打开窗口后重新定位窗口,但指定样式可以在视觉上强化窗口任务或内容的性质。iPadOS 定义了以下样式:

  • 明显的。一种升高窗口的模态,它使周围区域变暗防止与其交互。

    在「Mail 邮件」中回复一条消息时,可以把这个模态窗口变成一个单独的窗口,以 Slide Over 或者 Split View 的方式展示:
    iOS · 系统能力 · 多任务和多窗口
    通过滑动窗口底部的条,还可以在多个 Slide Over 的窗口中切换:
    iOS · 系统能力 · 多任务和多窗口

  • 标准的。并排显示可交互的对等窗口,每个窗口都支持 app 的全部功能。

    在「日历」中,可以在不同的窗口中同时查看两个不同周的事项,还可以从一边拖拽一个事项到另一边。iOS · 系统能力 · 多任务和多窗口

  • 自动的。系统基于 app 请求窗口的上下文进行选择的样式。

Note
如果你只想让用户查看一个文件,也可以在不另外创建窗口展示它,但必须在你的 app 中支持多个窗口。有关开发人员指南,请参阅QLPreviewSceneActivationConfiguration。

用明显的样式来呈现无需打开 app 其他部分即可完成的独立任务。例如,突出显示适用于开始文档编辑或其他只用于特定文件或内容集合的任务。需要确保突出窗口是有意义的,尽量避免使用它呈现次要任务、补充操作或选择影响主要任务的项目。

用标准样式呈现同一任务或内容的多个版本。例如,「Safari」使用标准样式帮用户同时查看屏幕上的两个浏览窗口并与之交互。

iOS · 系统能力 · 多任务和多窗口

只在用户明确操作后打开一个新窗口。例如,在用户点击 app shelf / App Exposé 中的添加 (+) 按钮,或选择菜单项时才打开新窗口。在用户没有明确要求的时候打开新窗口只会使他们诧异。

App Exposé 中右上角有个小小的添加按钮:
iOS · 系统能力 · 多任务和多窗口
拖拽 app 的图标到屏幕的边缘开启多窗口功能:
iOS · 系统能力 · 多任务和多窗口
在「Pages」中,从底部上拉显示出 Dock 后,再次点击「Pages」的图标,底部会出现新建窗口的提示:
iOS · 系统能力 · 多任务和多窗口

<tr/>
确保你的 app 窗口支持启用的每项任务。多窗口可以提供方便高效的工作流程,但用户总是需要一个能访问每个 app 功能的窗口。

保留用户打开的每个窗口的状态。用户回到某个窗口时,会期望它呈现离开时的状态。有关开发人员指南,请参阅恢复 app 的状态。

考虑支持用手势在新窗口打开内容。比方说可以用捏合手势将「备忘录」里的内容展开到新窗口中。要用突出的样式呈现启用手势的过渡效果,让生成的模态窗口看上去像是自然而然展开的项目或任务。有关的开发人员指南,请参阅collectionView(_:sceneActivationConfigurationForItemAt:point:)(从集合视图项中转换)或UIWindowScene.ActivationInteraction(从其他视图的内容中转换)。

考虑提供一个方便用户在新窗口中打开内容的菜单项。如果启用了此行为,当你的 app 在 iPad 或使用 Mac Catalyst 的 Mac 上运行时,菜单中会显示“在新窗口中打开”一栏,但在 iPhone 上运行时则不会。如果在你的 app 里,这样做是有意义的,也可以提供一个在 iPhone 上可运行的替代栏,例如“显示详细信息…”,然后将“在新窗口中打开”添加到子菜单上,或者附加到按钮或按钮项的菜单中。有关的开发人员指南,请参阅 UIWindowScene.ActivationAction。

不要在提供新窗口中打开内容的方法时指明布局。因为你无法确定用户正在使用哪种多任务配置,所以请避免提供诸如“在拆分视图中打开”或“在前面打开”之类的菜单项。

在面向用户的内容中使用统一的术语——窗口。无论类型如何,系统都将 app 窗口称为窗口。使用不同的术语(包括Scene,它指的是窗口实现)可能会让用户感到困惑。

多任务处理允许用户用 app 切换器从一个 app 快速切换到另一个 app,并在不同的设备拥有不同的体验。例如,在 iPhone 上,多任务处理允许用户在使用其他 app 的同时还能在画中画窗口中进行 FaceTime 通话或观看视频。
iOS · 系统能力 · 多任务和多窗口

在 iPad 上,多任务处理允许用户同时查看多个不同的 app 窗口并与之交互,一个 app 也可以打开多个可交互的窗口。
iOS · 系统能力 · 多任务和多窗口
iOS · 系统能力 · 多任务和多窗口
iPadOS 可以以多种配置呈现多任务处理窗口,支持多种工作流程。该系统还提供多任务控制(用于切换多任务配置)以及 app shelf(可访问 app 中所有打开的窗口)。
iOS · 系统能力 · 多任务和多窗口

可以选择以下配置之一在 iPad 上打开多任务窗口:

  • Slide Over(测滑视图):第二个窗口覆盖在全屏展示的第一个窗口之上。用户可以更改 Slide Over 窗口在屏幕的位置,或将其隐藏在屏幕外方便稍后检索。Slide Over 中还可以打开多个窗口,形成一个堆栈。 iOS · 系统能力 · 多任务和多窗口 <tr/>
  • 拆分视图:并排显示两个窗口,用户可以调整窗口相对大小并与两者进行交互。用户在拆分视图中查看并排的窗口时,还可以打开第三个窗口。
    iOS · 系统能力 · 多任务和多窗口
    <tr/>

  • 画中画:视频显示于悬浮于全屏 app 上方的可移动、可调整大小的窗口中。
    iOS · 系统能力 · 多任务和多窗口

Note
App 不控制多任务配置或接收用户选择的任何指示。

人们希望在设备上使用多任务处理,如果你的 app 不允许,他们可能会认为出错了。除了极少数例外(比如一些在 iPad 上全屏的 app),每个 app 都应该能很好地处理多任务。有关指导,请参阅支持多任务处理。

为了帮助你的 iPad 应用能正确响应分屏浏览或测滑打开窗口,请确保它能够很好地适配不同的屏幕尺寸。有关的开发人员指南,请参阅iPad 上的多任务处理。要了解人们如何使用 iPad 多任务处理功能的更多信息,请参阅在 iPad 上使用多任务处理。

除了确保 app 能够很好地处理多任务之外,还需要额外实现支持多窗口。有关指导,请参阅【在 iPad 上启用多个窗口](https://developer.apple.com/design/human-interface-guidelines/ios/system-capabilities/multitasking/#enabling-multiple-windows-on-ipadScenes](https://developer.apple.com/documentation/uikit/app_and_environment/scenes)。)。有关的开发人员指南,请参阅[

重要提示
若要在 iPad app 的 Mac 版本中启用多个窗口,就必须在 iPad 上实现多个窗口。有关指导,请参阅 Mac Catalyst。


支持多任务处理

为了很好地支持多任务处理,你的 app 需要与设备上的其他 app 和谐共存,最大限度地减少对 CPU、内存、屏幕空间和其他系统资源的使用。在其他 app 的音频突然中断时,支持多任务处理的 app 可以很好地进行响应,快速平稳地切换后台的做法能够带来良好的体验。

为中断和继续做好准备。用户可能随时中断在你的 app 中的进程。当中断发生时,你的 app 需要快速、准确地保存当前状态,方便用户返回时可以在上次中断的地方流畅地继续下去。有关的开发人员指南,请参阅响应 app 的启动。

暂停需要用户集中注意力或积极参与的活动。例如,如果你的 app 是游戏 app 或音视频 app ,请确保用户切换到另一个 app 时不会错过任何内容。当他们切回来的时候能继续,就好像他们从未离开过一样。

对音频中断做出适当的反应。有时,你的 app 的音频可能会被来自另一个 app 的音频或系统本身的音频打断。例如,Siri 发起的来电或音乐播放列表可能会中断你的 app 的音频。发生此类情况时,用户会希望你的 app 按以下方式做出响应:
– 主音频通道中断时,譬如切换到播放音乐、播客或有声读物,需要无限期暂停原音频。
– 对于较短地中断,比如来自 GPS 的定向通知,可以暂时降低音量或暂停音频,然后在中断结束后恢复原始音量或继续播放。

比如听歌的同时打开了地图软件进行导航,导航发出声音的时间通常比较短暂,这时音乐的声音可以相应减弱而不是暂停,导航声音结束时恢复原音量。

有关指导,请参阅音频。

在后台完成用户启动的任务。用户开始一项任务时,他们希望能完成它,即使离开了你的 app。如果你的 app 正在执行不需要额外输入的任务,请在后台继续完成,除非用户手动暂停。

谨慎使用通知。不论你的 app 是被暂停了,还是在后台运行,又或者是根本不运行,都可以设定为在特定时间发送通知。通常情况下,不要在 app 完成后台任务前发送通知,应该让用户返回你的 app 来查看任务。有关指导,请参阅通知。


在 iPad 上启用多个窗口

从概念上讲,iPad 上的 app 倾向于使用两种类型的窗口提供内容:

  • 一个主窗口显示 app 的完整层次,并接入所有 app 的对象和与之相关的操作。例如,「邮件」用主窗口显示所有邮箱和邮件列表。
  • 一个通常是使用模型视图的辅助窗口显示特定的任务或 app 的特定区域。辅助窗口不能导航到 app 的其他区域,它专用于一种体验,且通常包含完成任务后用来关闭它的按钮。例如,Mail 使用辅助窗口来呈现单个消息。

在 iPadOS 15 及更高版本中,可以指定一种样式,来决定 app 每个窗口的初始外观。虽然用户可以在打开窗口后重新定位窗口,但指定样式可以在视觉上强化窗口任务或内容的性质。iPadOS 定义了以下样式:

  • 明显的。一种升高窗口的模态,它使周围区域变暗防止与其交互。

    在「Mail 邮件」中回复一条消息时,可以把这个模态窗口变成一个单独的窗口,以 Slide Over 或者 Split View 的方式展示:
    iOS · 系统能力 · 多任务和多窗口
    通过滑动窗口底部的条,还可以在多个 Slide Over 的窗口中切换:
    iOS · 系统能力 · 多任务和多窗口

  • 标准的。并排显示可交互的对等窗口,每个窗口都支持 app 的全部功能。

    在「日历」中,可以在不同的窗口中同时查看两个不同周的事项,还可以从一边拖拽一个事项到另一边。iOS · 系统能力 · 多任务和多窗口

  • 自动的。系统基于 app 请求窗口的上下文进行选择的样式。

Note
如果你只想让用户查看一个文件,也可以在不另外创建窗口展示它,但必须在你的 app 中支持多个窗口。有关开发人员指南,请参阅QLPreviewSceneActivationConfiguration。

用明显的样式来呈现无需打开 app 其他部分即可完成的独立任务。例如,突出显示适用于开始文档编辑或其他只用于特定文件或内容集合的任务。需要确保突出窗口是有意义的,尽量避免使用它呈现次要任务、补充操作或选择影响主要任务的项目。

用标准样式呈现同一任务或内容的多个版本。例如,「Safari」使用标准样式帮用户同时查看屏幕上的两个浏览窗口并与之交互。

iOS · 系统能力 · 多任务和多窗口

只在用户明确操作后打开一个新窗口。例如,在用户点击 app shelf / App Exposé 中的添加 (+) 按钮,或选择菜单项时才打开新窗口。在用户没有明确要求的时候打开新窗口只会使他们诧异。

App Exposé 中右上角有个小小的添加按钮:
iOS · 系统能力 · 多任务和多窗口
拖拽 app 的图标到屏幕的边缘开启多窗口功能:
iOS · 系统能力 · 多任务和多窗口
在「Pages」中,从底部上拉显示出 Dock 后,再次点击「Pages」的图标,底部会出现新建窗口的提示:
iOS · 系统能力 · 多任务和多窗口

<tr/>
确保你的 app 窗口支持启用的每项任务。多窗口可以提供方便高效的工作流程,但用户总是需要一个能访问每个 app 功能的窗口。

保留用户打开的每个窗口的状态。用户回到某个窗口时,会期望它呈现离开时的状态。有关开发人员指南,请参阅恢复 app 的状态。

考虑支持用手势在新窗口打开内容。比方说可以用捏合手势将「备忘录」里的内容展开到新窗口中。要用突出的样式呈现启用手势的过渡效果,让生成的模态窗口看上去像是自然而然展开的项目或任务。有关的开发人员指南,请参阅collectionView(_:sceneActivationConfigurationForItemAt:point:)(从集合视图项中转换)或UIWindowScene.ActivationInteraction(从其他视图的内容中转换)。

考虑提供一个方便用户在新窗口中打开内容的菜单项。如果启用了此行为,当你的 app 在 iPad 或使用 Mac Catalyst 的 Mac 上运行时,菜单中会显示“在新窗口中打开”一栏,但在 iPhone 上运行时则不会。如果在你的 app 里,这样做是有意义的,也可以提供一个在 iPhone 上可运行的替代栏,例如“显示详细信息…”,然后将“在新窗口中打开”添加到子菜单上,或者附加到按钮或按钮项的菜单中。有关的开发人员指南,请参阅 UIWindowScene.ActivationAction。

不要在提供新窗口中打开内容的方法时指明布局。因为你无法确定用户正在使用哪种多任务配置,所以请避免提供诸如“在拆分视图中打开”或“在前面打开”之类的菜单项。

在面向用户的内容中使用统一的术语——窗口。无论类型如何,系统都将 app 窗口称为窗口。使用不同的术语(包括Scene,它指的是窗口实现)可能会让用户感到困惑。

部分转自互联网,侵权删除联系

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » iOS · 系统能力 · 多任务和多窗口求职学习资料
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们