按照本章的指导,让您的App在支持的iPad设备上运行iOS9多任务。当您创建新的Xcode7模板项目时,默认支持SlideOver和SplitView。如果您从旧项目升级到iOS9,请通过以下步骤设置您的Xcode项目配置,以便App支持SlideOver和SplitView:根据AppDistributionGuide中设置BaseSDK的描述,设置BaseSDK到“最新的iOS”。提供LaunchScreen.storyboard文件(而不是iOS7及更早版本中的.png图像文件)。请参阅应用分发指南中的创建启动屏幕文件。在项目的Info.plist文件中的“Supportedinterfaceorientations(iPad)”数组中,声明支持所有四种设备方向,如下图注意:如果一定要不支持SlideOver和SplitView,在你的Xcode项目的Info中.plist文件,显式添加UIRequiresFullScreen关键字并将YES分配给它的布尔值。可以在属性列表编辑器中设置,也可以在目标编辑器的General>DeploymentInfo区域设置。提示:用户可以通过设置“设置”>“通用”>“多任务处理”来禁用侧拉和拆分视图。如果您已正确设置所有内容但仍无法使用这些功能,则可以检查此设置。关于如何使用SlideOver和SplitView,您可以下载Lister(适用于watchOS、iOS和OSX)示例代码项目。在SlideOver和SplitView中,主要和次要应用程序同时在前台运行,大多数时候它们是平等的。但只有主应用可以:拥有自己的状态栏;有资格使用第二个物理屏幕工作;可以使用画中画自动调用;在横屏模式下可以占据2/3的屏幕区域,而在分屏视图下,水平方向上面是常规的SizeClass(在横屏SplitView下,副应用最多占据一半屏幕,而它是水平方向上的紧凑尺寸等级)。在SplitView中,用户可以控制应用程序窗口的大小。用户通过旋转设备(如在早期版本的iOS中)或在分隔主要应用程序和次要应用程序的垂直分隔线上水平滑动来执行此操作。当两种类型的更改发生时,系统以相同的方式通知您的应用程序:窗口边界的更改伴随着根视图控制器的大小类的更改。(当用户移动分屏控件时,也会显示应用程序状态转换,这将在本节后面介绍。)以前,iPad的水平和垂直尺寸类别始终是“常规”的。随着SlideOver和SplitView的出现,这一切都发生了很大变化。下图是你的App在用户操作iPad屏幕后会遇到不同的SizeClasses。为了让您的应用程序的内容正确显示,您的应用程序必须响应。您的应用程序设置应该:使用自动布局和尺寸类,如自动布局指南、尺寸类设计帮助和模拟屏幕尺寸和方向中所述。这就要求App中的LaunchScreen.storyboard文件必须支持AutoLayout。在Xcode7中使用App模板创建的新项目将自动生成一个LaunchScreen.storyboard文件。要了解如何将此文件添加到您的项目,请参阅应用分发指南中的创建启动屏幕文件。在UITraitEnvironment中实现方法?和UIContentContainer以响应特征集合和大小的变化。响应AppStateTransitionProtocol方法调用,如iOSAppProgrammingGuide的ExecutionStatesforApps中所述。正确处理应用程序的状态转换在iOS9中尤为重要。在SplitView的上下文中,每当用户移动SplitView拆分器时,屏幕上的两个应用程序都会移出屏幕。即使用户改变主意并将拆分器返回到起点,也会发生这种情况。当用户移动拆分控件时,系统使用ApplicationWillResignActive:协议方法调用App委托对象。系统会重新定位您的应用程序(屏幕外)以捕获一个或多个快照,从而确保在用户最终释放分隔控件时获得流畅的用户体验。这是因为当用户最终释放拆分器控件时,无法预测应用程序窗口的最终边界。更复杂的情况是设备的旋转和分隔器的移动同时发生。确保您的应用在调整大小和快照获取处理期间不会丢失数据状态或导航状态。这是当用户改变App的大小时——移动分隔线,移动到初始位置***释放分隔线,在这一系列的情况下,用户期望的是App的状态,导航位置(包括查看、选择、滚动)位置等)可以与用户最初触摸分隔线时相同。充分利用ApplicationWillResignActive:调用来保存用户状态。详情请阅读《iOS应用程序编程指南》中“应用程序临时中断怎么办”一节。如果用户将分隔控件移动到屏幕边缘并且您的应用程序消失,系统将调用ApplicationDidEnterBackground:协议方法。有关优雅地处理应用程序状态转换的指南,请阅读iOS应用程序编程指南的处理应用程序状态转换的策略部分。有关快照处理的信息,请阅读准备应用程序快照,并参考UIView类参考中的捕获视图快照。
