【问题标题】:Check if an iPad is capable of multitasking feature in iOS 9 - Programatically检查 iPad 是否能够在 iOS 9 中进行多任务处理 - 以编程方式
【发布时间】:2016-02-15 16:32:00
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    设备兼容性

    如果您真的想确保您的设备具有特定的兼容性,您可以检查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。有关画中画示例,请查看AVFoundationPiPPlayerAdaptivePhotos 示例包括 iPad 的多任务处理。

    【讨论】:

    • 如果使用 AVCaptureSession 对象,我们可以识别这个状态。如果不是,我们需要依靠视图大小和窗口大小比较。
    猜你喜欢
    • 1970-01-01
    • 2015-08-26
    • 2016-02-13
    • 2015-12-16
    • 1970-01-01
    • 2011-01-31
    • 2014-09-06
    相关资源
    最近更新 更多