设备兼容性
如果您真的想确保您的设备具有特定的兼容性,您可以检查Device Compatibility list 上的设置。这将显示一些您可以添加到应用程序的 plist 中的键,这将进一步将其限制为支持所需功能的设备。连同检查下面提到的可用类,我认为这将为您想要完成的工作提供一个很好的矩阵。
快速查看 WWDC video 涵盖您想要支持的功能表明您需要检查 iPad Air、iPad Air2、iPad mini 2 和 3。您可以组合查看屏幕尺寸使用习语和类可用性,以确保您只针对您想要的设备。 IOSRES 具有这些屏幕尺寸的良好矩阵 ~ 由 UIScreen.mainScreen() 访问。
另一种选择是使用TraitCollection 进行检查,以识别正确的设备型号/功能。其中包括 displayScale 和 forceTouchCapability 等属性。人们甚至可以构建自己的特征集合来进一步描述独特的环境。
基本方法
单独检查设备可能不是您想要做的。相反,您应该检查 iOS 平台上可用的功能以及设备惯用语/特征集合的某种组合。然后,您可以使用响应选择器来比较该方法是否可用。
查看更新的SDKs 或框架以获取有关画中画的更多信息(基本上,新方法完成了所有的工作,并告诉您设备是否支持该功能)。运行这些方法的另一个前提是确定您是否可以实例化新类。
您还可以研究用于检查平台内特定硬件的选项。请参阅 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 specifics 了解如何采用新行为。这些需要设置 plist 和其他要求,超出检查类和上述其他编程技术。
有一个很好的例子说明如何采用 Slide Over 和 Split View,下载 Lister (for watchOS, iOS, and OS X) sample code project。有关画中画示例,请查看AVFoundationPiPPlayer。AdaptivePhotos 示例包括 iPad 的多任务处理。