检查设备是不是为 iPad

Posted

技术标签:

【中文标题】检查设备是不是为 iPad【英文标题】:Checking if device is iPad检查设备是否为 iPad 【发布时间】:2012-10-17 23:17:03 【问题描述】:

这段代码有什么问题?我希望能够检查用户当前使用的设备是否是 iPad,但它一直给我错误。

if (UIUserInterfaceIdiom == UIUserInterfaceIdiomPad)

    //do stuff

【问题讨论】:

你可能想用不止 ipad 来标记它。 也许你说得太晚了?你是手动加载你的XIB吗?我记得这样做并成功了。但我想还有更好的解决方案。 【参考方案1】:

你可以使用

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)

【讨论】:

请注意,UIUserInterfaceIdiomPhone 值并不一定意味着您使用的是 iPhone 设备 - 而是接口惯用语与 iPhone 设备匹配。您可能在 iPad 上以 1x/2x 模式运行仅适用于 iPhone 的应用程序。 其实就是 UI_USER_INTERFACE_IDIOM()。 这是一个有趣的岩浆点,感谢您引起我的注意。我不知道是这样的【参考方案2】:

在 Swift 中你可以使用:

if UIDevice.current.userInterfaceIdiom == .pad 
    //do stuff

【讨论】:

【参考方案3】:

您必须检查设备是否为 iphone/ipad 的条件

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
    
//do ur  ipad logic
else

//do ur  iphone logic

【讨论】:

【参考方案4】:

如果你用的是 swift,就用这个

    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.Pad)
    
      // device is ipad
    
    else
    
        //  device is iPhone
    

【讨论】:

【参考方案5】:

/* UI_USER_INTERFACE_IDIOM() 函数用于部署到低于 3.2 的 ios 版本时使用。如果您要为其部署的 iPhone/iOS 的最早版本是 3.2 或更高版本,您可以直接使用 -[UIDevice userInterfaceIdiom]。 */

最好使用UIDevice.current.userInterfaceIdiom,除非你支持超级旧的iOS。

可能的情况如下:

public enum UIUserInterfaceIdiom : Int 
    case unspecified

    @available(iOS 3.2, *)
    case phone // iPhone and iPod touch style UI

    @available(iOS 3.2, *)
    case pad // iPad style UI

    @available(iOS 9.0, *)
    case tv // Apple TV style UI

    @available(iOS 9.0, *)
    case carPlay // CarPlay style UI

【讨论】:

【参考方案6】:

我的应用程序在 iPad 上作为 iPhone 专用应用程序运行,但我仍然需要检测设备是否为 iPad 以隐藏应用程序中与 Apple HealthKit 相关的某些功能,这些功能在 iPad 上不可用。我改用了这种方法。

extension UIDevice 
    var isPad: Bool 
        get 
            return UIDevice.deviceInfo.lowercased().containsWord("ipados")
        
    

【讨论】:

以上是关于检查设备是不是为 iPad的主要内容,如果未能解决你的问题,请参考以下文章

如何检查设备是 iPad 还是 iPhone 不工作

如何在 xib 的 appdelegate 中检查设备是 ipad 还是 iphone?

如何在 iPad 中检查设备方向从纵向到横向和反之亦然的变化 [重复]

检查 Phonegap 应用程序是不是在 iPad 或 iPhone 上运行

如何检查音频设备是不是为聚合设备

如何检查 UIDocumentInteractionController 是不是由于 iPad 上缺少外部应用程序而无法打开文档?