这段代码有什么问题?我希望能够检查用户正在使用的当前设备是否是 iPad,但它一直给我错误。
if (UIUserInterfaceIdiom == UIUserInterfaceIdiomPad)
{
//do stuff
}
这段代码有什么问题?我希望能够检查用户正在使用的当前设备是否是 iPad,但它一直给我错误。
if (UIUserInterfaceIdiom == UIUserInterfaceIdiomPad)
{
//do stuff
}
您可以使用
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
在 Swift 中,您可以使用:
if UIDevice.current.userInterfaceIdiom == .pad {
//do stuff
}
您必须检查设备是否为 iphone/ipad 的条件
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
//do ur ipad logic
}else
{
//do ur iphone logic
}
如果您使用的是 swift,请使用此
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.Pad)
{
// device is ipad
}
else
{
// device is iPhone
}
/* 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
}
我的应用程序在 iPad 上作为 iPhone 专用应用程序运行,但我仍然需要检测设备是否为 iPad,以隐藏应用程序中与 Apple HealthKit 相关的某些功能,这些功能在 iPad 上不可用。我改用这种方法。
extension UIDevice {
var isPad: Bool {
get {
return UIDevice.deviceInfo.lowercased().containsWord("ipados")
}
}
}