美文网首页iOS Developer
UIDevice 扩展 - iOS检测设备类型

UIDevice 扩展 - iOS检测设备类型

作者: 豆志昂扬 | 来源:发表于2016-10-13 11:38 被阅读284次

    在开发iOS 或 tvOS 应用的时候,Apple提供的自动布局通过动态计算视图大小来适配不同尺寸的屏幕,开发者再也不用担心因设备的屏幕大小各异带来的问题,但有时候开发者依然需要知道应用运行所在的设备的类型做相应特殊定制。

    下面的 UIDevice 扩展恰恰提供了相关功能,每个iPhone类型代表不同的屏幕尺寸,如.iPhone55 代表iPhone 6 Plus / 6S Plus。

    把下面代码拷贝到Swift类文件内,如 ** UIDeviceExtension.swift **

    extension UIDevice {  
        enum DeviceType {
            case iPhone35
            case iPhone40
            case iPhone47
            case iPhone55
            case iPad
            case TV
    
            var isPhone: Bool {
                return [ .iPhone35, .iPhone40, .iPhone47, .iPhone55 ].contains(self)
            }
        }
    
        var deviceType: DeviceType? {
            switch UIDevice.currentDevice().userInterfaceIdiom {
            case .TV:
                return .TV
    
            case .Pad:
                return .iPad
    
            case .Phone:
                let screenSize = UIScreen.mainScreen().bounds.size
                let height = max(screenSize.width, screenSize.height)
    
                switch height {
                case 480:
                    return .iPhone35
                case 568:
                    return .iPhone40
                case 667:
                    return .iPhone47
                case 736:
                    return .iPhone55
                default:
                    return nil
                }
    
            case .Unspecified:
                return nil
            }
        }
    }
    

    这样你就可以放心使用相关代码,如下:

    guard let type = UIDevice.currentDevice().deviceType  
    else {  
        // Unknown type
        return
    }
    
    if type == .TV {  
        // Code specific to Apple TV
    }
    else if type == .iPhone47 {  
        // Code specific to iPhone 6/6S
    }
    else if type.isPhone {  
        // Code specific to other iPhones
    }
    

    更多

    获取更多内容请关注微信公众号豆志昂扬:

    • 直接添加公众号豆志昂扬
    • 微信扫描下图二维码;

    相关文章

      网友评论

        本文标题:UIDevice 扩展 - iOS检测设备类型

        本文链接:https://www.haomeiwen.com/subject/uwswyttx.html