在Swift中使用UI_USER_INTERFACE_IDIOM()检测当前设备

UI_USER_INTERFACE_IDIOM()在iPhone和iPad之间检测到的Swift 相当于什么?

Use of unresolved identifier在Swift中编译时出现错误。

回答:

使用Swift时,您可以使用enumUIUserInterfaceIdiom,定义为:

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 == .pad

UIDevice.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

回到顶部