在 Swift 中與 UI_USER_INTERFACE_IDIOM()
等同的列赎、用于檢測設(shè)備是 iPhone 還是 iPad 的方法是什么呢奇钞?
Swift 中可以使用 enum
UIUserInterfaceIdiom
龟梦,定義如下:
enum UIUserInterfaceIdiom : Int {
case unspecified
case phone // iPhone 和 iPod touch 形式的 UI
case pad // iPad 形式的 UI
}
所以可以這么使用:
UIDevice.current.userInterfaceIdiom == .pad
UIDevice.current.userInterfaceIdiom == .phone
UIDevice.current.userInterfaceIdiom == .unspecified
或者用 Switch 語句:
switch UIDevice.current.userInterfaceIdiom {
case .phone:
// 這是 iPhone
case .pad:
// 這是 iPad
case .unspecified:
// Uh, oh! 這什么鬼?
}
UI_USER_INTERFACE_IDIOM()
是一個(gè) Objective-C 宏指令诺祸,定義為:
#define UI_USER_INTERFACE_IDIOM() \ ([[UIDevice currentDevice] respondsToSelector:@selector(userInterfaceIdiom)] ? \ [[UIDevice currentDevice] userInterfaceIdiom] : \ UIUserInterfaceIdiomPhone)
還有旁振,注意在編寫 Objective-C 時(shí)揣钦,UI_USER_INTERFACE_IDIOM()
宏只在 iOS 3.2 或以下需要用到雳灾。開發(fā) iOS 3.2 或以上的版本時(shí),直接用 [UIDevice userInterfaceIdiom]
就好了冯凹。