美文网首页iOS开发实践iOS FuniOS收集
如何判断设备是否为iPhone X,iOS获取设备型号的方法。

如何判断设备是否为iPhone X,iOS获取设备型号的方法。

作者: 拿根针尖对麦芒 | 来源:发表于2017-10-09 16:07 被阅读6485次

在开发过程中有时需要获取设备具体型号然后进行不同的设配,那么应该如何判断设备的型号?如何获取设置的型号呢?

在设配iPhone X时,因为iPhone X中有刘海儿和Home indicator, 当时在判断是否为iPhone X时是根据其宽高进行判断的。如下:

//iPhone X
#define iPhoneX     (kSCREEN_WIDTH == 375.f && kSCREEN_HEIGHT == 812.f)

最后修改为:

#define KISIphoneX (CGSizeEqualToSize(CGSizeMake(375.f, 812.f), [UIScreen mainScreen].bounds.size) || CGSizeEqualToSize(CGSizeMake(812.f, 375.f), [UIScreen mainScreen].bounds.size))

其中kSCREEN_WIDTHkSCREEN_HEIGHT分别为:

#define kSCREEN_WIDTH          ([UIScreen mainScreen].bounds.size.width)
#define kSCREEN_HEIGHT         ([UIScreen mainScreen].bounds.size.height)

当然也可以使用 CGSizeEqualToSize(CGSizeMake(375.f, 812.f), [UIScreen mainScreen].bounds.size)进行判断。但这种方法只能判断iPhone X,而像iPhone 6 plusiPhone 6s PlusiPhone 7 Plus,iPhone 8 Plus其宽高都分别为414.f736.f
所以我们要获取具体的设备型号的时候可以使用sys/utsname.h中的systemInfomachine进行判断。

.m中的代码

PS:如果App还支持iPad 可以根据苹果设备类型说明,将iPad的型号添加进去………太多了……需要的自己加……

代码地址:HardwareType


参考资料:

相关文章

网友评论

  • winfredzen:这个只能判断竖屏的
    拿根针尖对麦芒:嗯的 ,你可以使用这个宏
    #define KISIphoneX (CGSizeEqualToSize(CGSizeMake(375.f, 812.f), [UIScreen mainScreen].bounds.size) || CGSizeEqualToSize(CGSizeMake(812.f, 375.f), [UIScreen mainScreen].bounds.size))

    或者你也可以根据设备的型号进行判断~~ 我在代码里将他们都添加进去了,你可以下载看看
  • woaiyouxi:最后一个kStatusBarHeight根本不靠谱啊,还是注释下吧。。
    woaiyouxi:@拿根针尖对麦芒 用我老婆头像?
    woaiyouxi:@拿根针尖对麦芒 共享wifi,百度地图,小黄车,膜拜等。我做过音乐悬浮条踩过坑。貌似摩拜也没适配,反正我没更新app。你头像是谁?
    拿根针尖对麦芒:[[UIApplication sharedApplication] statusBarFrame].size.height 用这种方法获取状态栏高度 在什么情况下会不靠谱呢?能不能告知下
  • 98342230dc19:两个float类型直等不靠谱啊
    阿斯顿卡卡:@拿根针尖对麦芒 能够根据屏的宽高来判断?
    阿斯顿卡卡:能够根据屏的宽高来判断?
    拿根针尖对麦芒:哦哦哦……是的!

本文标题:如何判断设备是否为iPhone X,iOS获取设备型号的方法。

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