当前位置: 首页 > 科技观察

ios9学习系列:分屏多任务

时间:2023-03-12 16:43:35 科技观察

iOS9的一个重大变化是增加了多任务,它允许用户同时在屏幕上运行多个应用程序。有两种形式,SlideOver(滑动叠加视图)和SplitView(分割视图)。SlideOverViewslideover在这个窗体中,用户可以从右边画出一个狭窄的区域,这个区域显示一个应用程序列表,然后你可以选择打开一个并显示在这个区域。它出现在您之前运行的程序之上,并且两个应用程序之间没有互操作性或影响。SplitViewSplit要打开拆分视图,用户将(两个应用程序之间的)分界线拖动到左侧。用户控制垂直分隔的2个应用程序的窗口大小。分屏视图在当前状态下,没有前台和后台的概念,两个应用都在前台。目前,拆分视图仅在iPadAir2上可用。在您的App中启用多任务多任务在您创建新项目时默认启用。如果要为旧项目启用此功能,则需要手动设置。以下是使用iOS9SDK时需要做的事情:1.Allowalldirections(Portrait,UpsideDown,LandscapeLeft,LandscapeRight)2.UseStoryboardssettings(OptingOut)当你有以上两个条件后满足时,使用iOS9SDK编译时允许多任务处理。如果要编辑此属性,请在info.plist中指定键UIRequiredFullscreen的值。AutoLayout的重要性AutoLayout最早是在iOS6中引入的,它允许你通过设置约束而不是位置信息来控制UI的布局。AdaptiveLayout是在iOS8中引入的,它将AutoLayout的功能提升到了一个新的水平,允许您为不同尺寸的设备设置不同的约束。Sizeclasses可以根据应用程序窗口的大小确定相对位置。由于多任务处理,您在iOS9上可能仍有很多问题需要解决。不要再使用UIInterfaceOrientation理论上,UIInterfaceOrientation在多任务情况下不起作用。多任务时如果要判断一个app的UIInterfaceOrientation,是无法确认是否全屏的。例如,如果您的应用程序位于前台且处于横向,它仍会返回UIInterfaceOrientationPortrait,即使它比纵向更宽。但是有时候我们还是需要根据方向来调整用户界面,怎么办呢?答案是,使用traitCollection.horizo??ntalSizeClass。他会给你SizeClass信息,你可以根据orientation调整应用中view的布局。尺寸改变事件当旋转事件发生时,我们推荐使用willRotateToInterfaceOrientation和didRotateToInterfaceOrientation方法进行响应。在iOS8中,Apple引入了两个方法,willTransitionToTraitCollection和viewWillTransitionToSize。这些方法对于iOS9中的多任务处理仍然有效且更为重要。您可以检测方向并根据需要手动比较宽度和高度。键盘响应事件以前,键盘事件仅在您打开应用程序时起作用。现在,可能只有顶级应用程序需要键盘,而且它就在那里。键盘在某些情况下,键盘的存在可能对您的应用程序没有影响。但有时候,键盘可能会挡住你应用的一个重要部分,此时UIKeyboard的通知就非常重要了。WillShow、DidShow、WillHide、DidHide、WillChangeFrame和DidChangeFrame这些通知使您能够处理此类问题。这些通知事件可以被出现在屏幕上的两个应用程序接收。其他考虑(多任务处理带来的)这些变化,让你不得不考虑,而不仅仅是视觉上的变化。以前只有一个应用程序在前台运行,您可能会使用大量CPU、GPU和内存资源。但现在不一样了。如果用户选择分屏浏览或者侧滑浏览,同时,他还使用了iOS9的画中画功能来观看视频,三款APP会共享这些资源,更好的为用户服务。经验,系统管理资源使用并终止占用过多资源的应用程序。---来自Apple的iOS9多任务开发文档。您需要在不同的情况下更多地测试您的应用程序,以确信它按预期工作,并确保您没有消耗过多的资源。进一步阅读要了解有关iOS9中多任务处理的更多信息,请阅读开发人员中心的文档在iPad上采用多任务处理。我还建议观看WWDC2015中的410会话持续集成和Xcode中的代码覆盖率。