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

Posted

技术标签:

【中文标题】如何检查设备是 iPad 还是 iPhone 不工作【英文标题】:How to check if device is an iPad or iPhone not working 【发布时间】:2018-04-09 02:50:17 【问题描述】:

我目前正在更新一个应用程序,我需要知道该应用程序是否正在 iPad 上使用。

我在网上查了一下,找到了下面的代码。我在 Xcode 中使用了 iPad 模拟器并运行了两个 if 语句。但是每当我运行代码时,什么都没有发生(打印消息不打印)此代码是否适用于模拟器还是我做错了什么?

当我检查它是否是 UIUserInterfaceIdiom.phone 时,打印语句会执行,但我在模拟器中使用的是 iPad。

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.pad)
        print("This is an iPad")
        redoButton.layer.position.y -= 500



    

if UIDevice.current.userInterfaceIdiom == .pad
        print("iPad True")
    

谢谢

【问题讨论】:

我认为第二个 if 语句应该用括号括起来。例如。 if (UIDevice.current.userInterfaceIdiom == .pad). 您的应用是通用应用吗?您使用的是启动屏幕故事板吗? @user7328702 不。Swift 不需要括号。 仅供参考 - 您不应该根据设备类型做出布局决策。您应该根据视图大小做出决定。 正如我所说,检查它是否是 iPad 是错误的解决方案。您的应用程序需要在许多不同尺寸的 iPhone 上运行。如果您将您的应用程序设为通用应用程序并完全支持 iPad,那么您可以使用相同的方法来处理不同尺寸的屏幕。此外,在 iPad 上,您应该支持多任务处理,这意味着您的应用程序的大小可以在运行时更改。这就是为什么您需要根据视图大小而不是设备类型来做出决定。 【参考方案1】:
if UIDevice.current.userInterfaceIdiom == .pad 
    print("iPad")
else
    print("not iPad")

但您需要让您的应用成为通用应用。

【讨论】:

严格来说,您不需要将其设为通用应用。这是一个好主意,因为它将为 iPad 用户提供更好的用户体验,但它需要做的只是支持 3.5 英寸手机。【参考方案2】:

如果您想经常检查 iphone/ipad。使用下面的类

class Env 
  static var isIpad : Bool  return UIDevice.current.userInterfaceIdiom == .pad 

那你就可以这样使用了

if Env.isIpad  // Ipad  
else  iphone  

【讨论】:

这不能回答问题。 @rmaddy 先生。它只是对已接受答案的增强。如果OP想经常检查。我应该删除它吗? 答案应该首先回答问题。答案不应该只是另一个答案中的代码方便。所以是的,我会删除您的答案或更新它以完全回答问题并提供其他答案中没有的信息。 是的,但无论如何,这是一个更清洁的解决方案......我说离开它。【参考方案3】:

你可以使用:

如果 UIDevice.current.model == "iPad"

【讨论】:

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

如何确定当前设备是 iPhone 还是 iPad?

判断iPhone还是iPad设备

如何在 JavaScript 中区分 iPhone、iPad 和 iPod?

js怎么判断移动设备是Android还是iPhone,接着判断Android下设备是ipad还是手机

检测iOS设备类型

如何使用Mac远程调试iPhone/iPad 中的网页