27

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

if (UIUserInterfaceIdiom == UIUserInterfaceIdiomPad)
{
    //do stuff
}
4

6 回答 6

45

您可以使用

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
于 2012-10-17T23:19:26.803 回答
33

在 Swift 中,您可以使用:

if UIDevice.current.userInterfaceIdiom == .pad {
    //do stuff
}
于 2017-06-13T19:16:36.697 回答
7

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

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
    {
//do ur  ipad logic
}else
{
//do ur  iphone logic
}
于 2012-10-18T05:17:43.323 回答
4

如果您使用的是 swift,请使用此

    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.Pad)
    {
      // device is ipad
    }
    else
    {
        //  device is iPhone
    }
于 2016-04-06T18:43:33.923 回答
3

/* 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
}
于 2017-10-27T18:22:37.160 回答
0

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

extension UIDevice {
    var isPad: Bool {
        get {
            return UIDevice.deviceInfo.lowercased().containsWord("ipados")
        }
    }
}
于 2022-01-17T22:11:46.273 回答