如何判断设备是否为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_WIDTH
、kSCREEN_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 plus
、iPhone 6s Plus
、iPhone 7 Plus
,iPhone 8 Plus
其宽高都分别为414.f
、736.f
。
所以我们要获取具体的设备型号的时候可以使用sys/utsname.h
中的systemInfo
的machine
进行判断。
PS:如果App还支持iPad 可以根据苹果设备类型说明,将iPad的型号添加进去………太多了……需要的自己加……
代码地址:HardwareType