iOS开发实践iOS FuniOS收集

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

2017-10-09  本文已影响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


参考资料:

上一篇 下一篇

猜你喜欢

热点阅读