美文网首页知识点
更优雅地判断iOS设备类型

更优雅地判断iOS设备类型

作者: 那时天很蓝 | 来源:发表于2018-01-29 14:29 被阅读66次

    随着iPhoneX的发布,导航栏高度在iPhone中也不再是一个64的常量了。
    因此,很多地方需要针对齐刘海的导航栏高度做适配,目前网上很多关于判断是否为iPhoneX,使用了屏幕宽高来比较或者utsnamemachine来判断。
    这两个方法都有一些缺点,使用宽高不够优雅,以后可能出现相同宽高的屏幕,只使用utsnamemachine的话,在模拟器上就不好做适配了。
    于是,在Github上看到一个swift的库DeviceKit , 如果设备是模拟器的话,可以通过NSProcessInfo中的environment拿到SIMULATOR_MODEL_IDENTIFIER值,这个值就是模拟的真机的模型。
    不过,这个swift库使用的枚举类型不能被OC调用,老项目中又是使用OC的,因此写了个OC版的: HLDevice
    使用方法很简单,将工程中的HLDevice文件夹拖入你的工程:

    #import "HLDevice.h"
    
    ...
    
    HLDevice *device = [[HLDevice alloc] init];
    if (device.deviceModel == HLDeviceModel_iPhoneX ) {
        ...
    }
    

    HLDevice 目前有两个属性:HLDeviceModel, HLDeviceType,

    • HLDeviceModel:用于判断设备模型,如iPhoneX等
    • HLDeviceType: 用于判断设备类型,目前有三种: HLDeviceTypeUnkown: 未知设备, HLDeviceTypeRealMachine: 真机, HLDeviceTypeSimulator: 模拟器

    如果有什么问题,欢迎大家去HLDevice上提出issue

    相关文章

      网友评论

        本文标题:更优雅地判断iOS设备类型

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