Обнаружение последних яблочных устройств Xs, X (R) - PullRequest
0 голосов
/ 17 сентября 2018

Мне нужно определять последние устройства iphone программно.У меня есть все идентификаторы устройств для предыдущих моделей, но мне нужны идентификаторы устройств для iPhone Xs max, iPhone Xs, iPhone X (R).

1 Ответ

0 голосов
/ 17 сентября 2018

Для XCode 9 и Swift 4

extension UIDevice {
    var iPhoneX: Bool {
        return UIScreen.main.nativeBounds.height == 2436
    }
    var iPhone: Bool {
        return UIDevice.current.userInterfaceIdiom == .phone
    }
    enum ScreenType: String {
        case iPhones_4_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 iPhones_X_XS = "iPhone X or iPhone XS"
        case iPhone_XR = "iPhone XR"
        case iPhone_XSMax = "iPhone XS Max"
        case unknown
    }
    var screenType: ScreenType {
        switch UIScreen.main.nativeBounds.height {
        case 960:
            return .iPhones_4_4S
        case 1136:
            return .iPhones_5_5s_5c_SE
        case 1334:
            return .iPhones_6_6s_7_8
        case 1792:
            return .iPhone_XR
        case 1920, 2208:
            return .iPhones_6Plus_6sPlus_7Plus_8Plus
        case 2436:
            return .iPhones_X_XS
        case 2688:
            return .iPhone_XSMax
        default:
            return .unknown
        }
    }
}

И используйте это просто:

print("screen Type:", UIDevice.current.screenType.rawValue)

Также можете посетить это, чтобы узнать о разрешении экрана устройств iPhone.

https://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions

...