在开发过程中有时需要获取设备具体型号然后进行不同的设配,那么应该如何判断设备的型号?如何获取设置的型号呢?
在设配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进行判断。
.m中的代码
PS:如果App还支持iPad 可以根据苹果设备类型说明,将iPad的型号添加进去………太多了……需要的自己加……
代码地址:HardwareType








网友评论
#define KISIphoneX (CGSizeEqualToSize(CGSizeMake(375.f, 812.f), [UIScreen mainScreen].bounds.size) || CGSizeEqualToSize(CGSizeMake(812.f, 375.f), [UIScreen mainScreen].bounds.size))
或者你也可以根据设备的型号进行判断~~ 我在代码里将他们都添加进去了,你可以下载看看