在Swift中使用UI_USER_INTERFACE_IDIOM()检测当前设备
UI_USER_INTERFACE_IDIOM()
在iPhone和iPad之间检测到的Swift 相当于什么?
Use of unresolved identifier
在Swift中编译时出现错误。
回答:
使用Swift时,您可以使用enum
UIUserInterfaceIdiom
,定义为:
enum UIUserInterfaceIdiom : Int { case unspecified
case phone // iPhone and iPod touch style UI
case pad // iPad style UI (also includes macOS Catalyst)
}
因此,您可以将其用作:
UIDevice.current.userInterfaceIdiom == .padUIDevice.current.userInterfaceIdiom == .phone
UIDevice.current.userInterfaceIdiom == .unspecified
或使用Switch语句:
switch UIDevice.current.userInterfaceIdiom { case .phone:
// It's an iPhone
case .pad:
// It's an iPad (or macOS Catalyst)
case .unspecified:
// Uh, oh! What could it be?
}
UI_USER_INTERFACE_IDIOM()
是一个Objective-C宏,定义为:
#define UI_USER_INTERFACE_IDIOM() \ ([[UIDevice currentDevice] respondsToSelector:@selector(userInterfaceIdiom)] ? \ [[UIDevice currentDevice] userInterfaceIdiom] : \ UIUserInterfaceIdiomPhone)
另外,请注意,即使在使用Objective-C时,UI_USER_INTERFACE_IDIOM()
也仅在定位iOS
3.2及更低版本时才需要该宏。部署到iOS 3.2及更高版本时,可以[UIDevice userInterfaceIdiom]
直接使用。
以上是 在Swift中使用UI_USER_INTERFACE_IDIOM()检测当前设备 的全部内容, 来源链接: utcz.com/qa/400382.html