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

移动开发 iOS
本文由钢铁侠般的卿哥翻译自苹果官方文档:Adopting Multitasking Enhancements on iPad,主要讲述iOS 9中iPad的多任务处理功能,欢迎指正。

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

323.png

注意:如果你一定不支持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。

34.png

为了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: 协议方法。

有关优雅其处理App状态过渡的引导,请阅读 App Programming Guide for iOS 中 Strategies for Handling App State Transitions 一节。

关于快照的处理信息,请阅读 Prepare for the App Snapshot ,并参考 UIView Class Reference 中的 Capturing a View Snapshot 相关内容。

责任编辑:倪明 来源: 苹果开发者中心
相关推荐

2015-07-14 16:15:22

2015-07-14 17:21:19

IOS 9分屏

2015-06-17 10:41:50

2020-02-13 10:05:24

开源技术 趋势

2012-07-13 13:42:40

2014-05-09 12:59:26

iOS移动互联网

2015-08-24 09:19:05

ios9split scree

2024-02-21 15:05:30

2010-05-28 18:07:47

TortoiseSVN

2009-08-18 16:19:57

Google Insi

2012-09-10 10:42:34

IBMdw

2010-01-19 14:46:04

jQuery 1.4

2015-09-23 10:30:44

iOS 9UIStack Vie

2010-08-26 17:08:20

vsftpd faq

2011-03-03 13:25:57

2009-06-11 10:15:09

netbeans 安装

2010-05-24 17:26:59

TortoiseSVN

2012-02-01 17:38:09

2015-07-02 16:25:09

iOS 9UIStackView

2012-08-22 10:08:53

Windows Ser
点赞
收藏

51CTO技术栈公众号