检查设备是否为iPad

23 iphone user-interface ipad ios ios6

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

if (UIUserInterfaceIdiom == UIUserInterfaceIdiomPad)
{
    //do stuff
}
Run Code Online (Sandbox Code Playgroud)

Mak*_*esh 44

您可以使用

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
Run Code Online (Sandbox Code Playgroud)

  • 请注意,UIUserInterfaceIdiomPhone值并不一定意味着您在iPhone设备上 - 而是说,界面成语与iPhone相匹配.您可能在iPad上,以1x/2x模式运行仅限iPhone的应用程序. (7认同)
  • 实际上它是UI_USER_INTERFACE_IDIOM(). (2认同)

Ada*_*hns 14

在Swift中你可以使用:

if UIDevice.current.userInterfaceIdiom == .pad {
    //do stuff
}
Run Code Online (Sandbox Code Playgroud)


sab*_*bir 8

你必须贬低设备是iphone/ipad的条件

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
    {
//do ur  ipad logic
}else
{
//do ur  iphone logic
}
Run Code Online (Sandbox Code Playgroud)


Rya*_*yan 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
}
Run Code Online (Sandbox Code Playgroud)