【发布时间】: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 上,您应该支持多任务处理,这意味着您的应用程序的大小可以在运行时更改。这就是为什么您需要根据视图大小而不是设备类型来做出决定。
标签: ios swift uikit ios-simulator