在iOS 9中检查iPad是否具有多任务功能 - 以编程方式

时间:2015-11-14 00:32:17

标签: ipad ios9 multitasking-gestures split-screen-multitasking

对于iPad Air 2或iPad mini 4,我们可以使用所有三种不同的多任务功能(分割视图,幻灯片和画中画)。 对于iPad Air,iPad mini 2或iPad mini 3,我们可以使用Slide Over和Picture in Picture。有没有办法可以从代码中检测出这些设备?比方说,使用respondsToSelector:someMultitaskingmethod

1 个答案:

答案 0 :(得分:6)

设备兼容性

如果您确实要确保您的设备具有特定的兼容性,可以在Device Compatibility list上检查设置。这将显示您可以添加到应用程序的plist中的一些键,这些键将进一步限制为支持所需功能的设备。与检查下面提到的可用类一起,我认为将为您想要完成的任务提供一个很好的矩阵。

快速查看涵盖您要支持的功能的WWDC video表示您需要检查iPad Air,iPad Air2,iPad mini 2和3.您可以查看屏幕尺寸结合习语和类可用性,确保您只定位所需的设备。 IOSRES具有这些屏幕尺寸的良好矩阵〜由UIScreen.mainScreen()访问。

另一个选择是使用TraitCollection检查以确定正确的设备型号/功能。其中包括displayScale和forceTouchCapability等属性。人们甚至可以构建自己的特质集合来进一步描述一个独特的环境。

基本方法

单独检查设备可能不是您想要做的。相反,您应该检查iOS平台上可用的功能以及设备习语/特征集合的某些组合。然后,您可以使用响应选择器来比较该方法是否可用。

检查更新的SDKs或框架以获取有关画中画的更多信息(基本上,新方法可以完成所有的工作并告诉您设备是否支持该功能)。运行方法的另一个前提是确定是否可以实例化新类。

sdk

您还可以研究检查平台内特定硬件的选项。请参阅Apple的this example

如果您知道要定位的功能在特定平台级别可用,则可以测试操作系统版本号(Apple Example)。

+ (BOOL)isURLLoadingAvailable
{
    return (NSFoundationVersionNumber >= 462.6);
}

article显示了如何非常详细地支持多个操作系统和设备。

测试可用课程的示例:

if ([AVPictureInPictureController class]) {
    //Safe to use AVPictureInPictureController 
} else {
    //Fail gracefully
}

测试可用方法的示例:

if ([self.image respondsToSelector:@selector(resizableImageWithCapInsets:resizingMode:)]) {
    //Safe to use this way of creating resizable images
} else {
    //Fail gracefully
}

采用多任务,分割视图和&滑过

Apple details the specific关于如何采用新行为。这些需要设置plist和其他要求,以及检查上面的类和其他编程技术。 有一个很好的例子,说明如何采用Slide Over和Split View,下载Lister (for watchOS, iOS, and OS X) sample code project。有关画中画示例,请查看AVFoundationPiPPlayerAdaptivePhotos示例包括使用iPad进行多任务处理。