首页 >iOS开发

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

2015-07-14 11:23 编辑: suiling 分类:iOS开发 来源:苹果开发者中心

203.png

本文由钢铁侠般的卿哥(微博)翻译自苹果官方文档:Adopting Multitasking Enhancements on iPad,主要讲述iOS 9中iPad的多任务处理功能,欢迎指正。
该文档包含:
第一部分:iOS 9 分屏多任务--入门
第二部分:iOS 9 分屏多任务--Slide Over & Split View快速入门
第三部分:iOS 9 分屏多任务--画中画(PiP)快速入门


按照本章中的指导,在支持的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设置应当:

这要求App中的LaunchScreen.storyboard文件必须支持Auto Layout。使用Xcode 7中的App模板创建的新工程会自动生成LaunchScreen.storyboard文件。学习如何添加这个文件到你的工程中,请参阅 App Distribution Guide 中的 Creating a Launch Screen File 内容。

正确地处理你的App的状态转换在iOS9中尤为重要。在Split View上下文中,每当用户移动Split View分割器时,屏幕上的两个应用程序都将移动到屏幕之外。甚至是当用户改变主意并将分割器返回起点时,这种情况也会发生。

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

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

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

搜索CocoaChina微信公众号:CocoaChina
微信扫一扫
订阅每日移动开发及APP推广热点资讯
公众号:
CocoaChina
我要投稿   收藏文章
上一篇: iOS 9 分屏多任务:入门(中文版)
下一篇:iOS 9 分屏多任务:画中画(PiP)快速入门(中文版)
我来说两句
发表评论
您还没有登录!请登录注册
所有评论(0

综合评论

相关帖子

sina weixin mail 回到顶部