【发布时间】:2020-07-21 15:30:15
【问题描述】:
我正在尝试确定正在使用的设备是 iPhone 还是 iPad。
请看这个问题:Detect current device with UI_USER_INTERFACE_IDIOM() in Swift
如果您使用 UIKit,该解决方案将有效。但是
如果你使用的是 SwiftUI,等效的方法是什么?
【问题讨论】:
我正在尝试确定正在使用的设备是 iPhone 还是 iPad。
请看这个问题:Detect current device with UI_USER_INTERFACE_IDIOM() in Swift
如果您使用 UIKit,该解决方案将有效。但是
如果你使用的是 SwiftUI,等效的方法是什么?
【问题讨论】:
您可以找到设备类型,如下所示:
if UIDevice.current.userInterfaceIdiom == .pad {
...
}
【讨论】:
import SwiftUI 也适用于我
你可以用这个:
UIDevice.current.localizedModel
在您的情况下,实现方法可能是:
if UIDevice.current.localizedModel == "iPhone" {
print("This is an iPhone")
} else if UIDevice.current.localizedModel == "iPad" {
print("This is an iPad")
}
显然,您可以将其用于字符串插值,例如(假设当前设备类型是 iPhone):
HStack {
Text("Device Type: ")
Text(UIDevice.current.localizedModel)
}
//Output:
//"Device Type: iPhone"
它将返回设备类型。 (iPhone、iPad、AppleWatch)如果您选择 SwiftUI 作为界面,则除了应该在创建项目时已经导入的 SwiftUI 之外,无需进一步导入。
注意:它不返回设备模型(尽管有“.localizedModel”)
希望这会有所帮助!
【讨论】: