更优雅地判断iOS设备类型

随着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 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,267评论 4 61
  • 你好啊,小小! 因为最近在读王小波、李银河的《爱你就像爱生命》,就学着他们的样子给你也写这样的信,来表达我对你的爱...
    小而不才阅读 244评论 2 8
  • 王牌对王牌这是一部动作犯罪电影。同时也是改编一个真实的案件。整部电影一共140分钟。是1998年拍摄的,但是给我的...
    Cynicism离阅读 1,984评论 1 1
  • 文/07 冬归 春出远离难相舍 只为生计踏路北 忙忙碌碌三季走 又到初冬落叶歇 天涯倦客寒风雪 茫茫云天雁飞绝 离...
    723edf844d12阅读 449评论 8 16