iOS 9 分屏多任务:Slide Over & Split View快速入门(中文版)

按照本章中的指导,在支持的iPad设备上让你的App运行iOS 9多任务。
当你新建一个Xcode 7模板工程时,是默认支持Slide Over和Split View。如果你从老的工程升级到iOS 9,通过以下的步骤设置你的Xcode工程配置,从而让App支持Slide Over和Split View:

iOS 9 分屏多任务:Slide Over & Split View快速入门(中文版)

注意:如果你一定不支持Slide Over和Split View,在你的Xcode 项目的Info.plist文件中显式地加入UIRequiresFullScreen关键字并为其Boolean值赋上YES。你可以在属性列表编辑器,或在目标编辑器的General>Deployment Info区域设置。

提示:通过设置Settings > General > Multitasking,用户可禁用Slide Over和Split View 。如果你已经把一切都设置正确后,但仍无法使用这些特性,你可以检查这项设置。

对于如何使用Slide Over和Split View,可以下载Lister (for watchOS, iOS, and OS X)示例代码工程。

在 Slide Over and Split View中,主要和次要App都同时运行在前台,大多数情况下它们都是平等的。但只有主要App可以:

  • 拥有自己的状态栏;
  • 有资格使用第二物理屏幕工作;
  • 可使用画中画自动调用;
  • 可以占用横屏下的2/3屏幕面积,并且在分屏视图中,水平方向上是regular Size Class(横屏Split View中,次要应用最多占用二分之一的屏幕,并且在水平方向上是compact Size Class)。

在Split View中,用户控制你的应用程序窗口的大小。用户通过旋转设备(如在iOS的早期版本),或者水平滑动分割主要应用和次级应用程序的垂直分隔线来此操作。当两种类型的变化发生时,系统以同样的方式通知你的应用程序:窗口范围界限的改变会伴随改变根视图控制器的Size Classes。(用户移动分屏控件也会显示App状态过渡,在本节后面介绍。)

此前,iPad的水平和垂直Size Classes总是“regular”。随着Slide Over 和 Split View出现,这些都已经有很大的改变。下图显示了你的App会遇到用户操作iPad屏幕后不同的Size Classes。

iOS 9 分屏多任务:Slide Over & Split View快速入门(中文版)

为了App的内容正确显示,你的App必须是自适应的。你的App设置应当:

当用户移动分割控件时,系统会使用 ApplicationWillResignActive: 协议方法调用App委托对象。

系统会重新调整你的App(屏幕外)以捕捉到一个或多个快照,确保当用户最终释放分隔控件时能提供流畅的用户体验。这是因为在用户最终释放分隔控件时无法预测应用的窗口最终边界。更复杂的场景是设备的旋转和移动分隔器同时进行。

保证你的App在大小改变、快照获取处理中不丢失数据状态或导航状态。这就是当一个用户改变App大小--移动分隔器并将其移动到初始位置最后释放这个分隔器,这一系列的情况下,用户期望App的状态,导航位置(包括视图、选择、滚动位置以及其他等)能与用户最初触摸分隔器时一样。充分使用 ApplicationWillResignActive: 调用保存用户的状态。详情请阅读 App Programming Guide for iOS 中 What to Do When Your App Is Interrupted Temporarily 一节。

如果用户移动分隔控件直到屏幕边界让你的App消失,那系统会调用 ApplicationDidEnterBackground: 协议方法。

相关推荐