如果你想以编程方式检查它:
用于检查Retina(3.5/4英寸屏幕)或非视网膜
extension UIDevice { var iPhoneX: Bool { return UIScreen.main.nativeBounds.height == 2436 } var iPhone: Bool { return UIDevice.current.userInterfaceIdiom == .phone } enum ScreenType: String { case iPhone4_4S = "iPhone 4 or iPhone 4S" case iPhones_5_5s_5c_SE = "iPhone 5, iPhone 5s, iPhone 5c or iPhone SE" case iPhones_6_6s_7_8 = "iPhone 6, iPhone 6S, iPhone 7 or iPhone 8" case iPhones_6Plus_6sPlus_7Plus_8Plus = "iPhone 6 Plus, iPhone 6S Plus, iPhone 7 Plus or iPhone 8 Plus" case iPhoneXR = "iPhone XR" case iPhoneX_iPhoneXS = "iPhone X,iPhoneXS" case iPhoneXSMax = "iPhoneXS Max" case unknown } var screenType: ScreenType { switch UIScreen.main.nativeBounds.height { case 960: return .iPhone4_4S case 1136: return .iPhones_5_5s_5c_SE case 1334: return .iPhones_6_6s_7_8 case 1792: return .iPhoneXR case 1920, 2208: return .iPhones_6Plus_6sPlus_7Plus_8Plus case 2436: return .iPhoneX_iPhoneXS case 2688: return .iPhoneXSMax default: return .unknown } } }
更新:
检查ios8或ios 7
print("screenType:", UIDevice.current.screenType.rawValue)
用于以编程方式检查所有视网膜iPhone:
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) { if ([[UIScreen mainScreen] scale] == 2.0) { if([UIScreen mainScreen].bounds.size.height == 568){ // iPhone retina-4 inch } else{ // iPhone retina-3.5 inch } } else { // not retina display }
还检查一下
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) { if ([[UIScreen mainScreen] scale] == 2.0) { if([UIScreen mainScreen].bounds.size.height == 667){ // iPhone retina-4.7 inch(iPhone 6) } else if([UIScreen mainScreen].bounds.size.height == 568){ // iPhone retina-4 inch(iPhone 5 or 5s) } else{ // iPhone retina-3.5 inch(iPhone 4s) } } else if ([[UIScreen mainScreen] scale] == 3.0) { //if you want to detect the iPhone 6+ only if([UIScreen mainScreen].bounds.size.height == 736.0){ //iPhone retina-5.5 inch screen(iPhone 6 plus) } //iPhone retina-5.5 inch screen(iPhone 6 plus) } }
对于Swift 3.0
#define IS_IPHONE_5 (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 568.0) #define IS_IPHONE_6 (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 667.0) #define IS_IPHONE_6_PLUS (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 736.0)
您还可以按如下方式扩展UIDevice:
extension UIDevice { var iPhoneX: Bool { return UIScreen.main.nativeBounds.height == 2436 } var iPhone: Bool { return UIDevice.current.userInterfaceIdiom == .phone } enum ScreenType: String { case iPhone4_4S = "iPhone 4 or iPhone 4S" case iPhones_5_5s_5c_SE = "iPhone 5, iPhone 5s, iPhone 5c or iPhone SE" case iPhones_6_6s_7_8 = "iPhone 6, iPhone 6S, iPhone 7 or iPhone 8" case iPhones_6Plus_6sPlus_7Plus_8Plus = "iPhone 6 Plus, iPhone 6S Plus, iPhone 7 Plus or iPhone 8 Plus" case iPhoneXR = "iPhone XR" case iPhoneX_iPhoneXS = "iPhone X,iPhoneXS" case iPhoneXSMax = "iPhoneXS Max" case unknown } var screenType: ScreenType { switch UIScreen.main.nativeBounds.height { case 960: return .iPhone4_4S case 1136: return .iPhones_5_5s_5c_SE case 1334: return .iPhones_6_6s_7_8 case 1792: return .iPhoneXR case 1920, 2208: return .iPhones_6Plus_6sPlus_7Plus_8Plus case 2436: return .iPhoneX_iPhoneXS case 2688: return .iPhoneXSMax default: return .unknown } } }
编辑/更新 Xcode 8.1•Swift 3.0.1
print("screenType:", UIDevice.current.screenType.rawValue)
它可以帮到你.
快乐的编码.