iOS 不同机型屏幕适配
当iPhone手机机型不同的时候,需要考虑到屏幕的适配问题,我们可以先在.pch文件中写上全局变量,之后用到的时候,会方便很多。
// .pch 文件中写
// 判断是iPhone机型
/*
* 4s 960 * 640
* 5/5s 1136 x 640
* 6/6s/7/8 4.7英寸 1334 x 750
* 6p/6sp/7p/8p 5.5英寸 1920 x 1080
* X 5.8英寸 2436 x 1125
}
*/
#define IS_IPHONE_4s [UIScreen instancesRespondToSelector:@selector(currentMode)] ? \
CGSizeEqualToSize(CGSizeMake(640, 960), [[UIScreen mainScreen] currentMode].size) : \
NO
#define IS_IPHONE_5s [UIScreen instancesRespondToSelector:@selector(currentMode)] ? \
CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : \
NO
#define IS_IPHONE_6s [UIScreen instancesRespondToSelector:@selector(currentMode)] ? \
CGSizeEqualToSize(CGSizeMake(750, 1334), [[UIScreen mainScreen] currentMode].size) : \
NO
#define IS_IPHONE_6sp [UIScreen instancesRespondToSelector:@selector(currentMode)] ? \
CGSizeEqualToSize(CGSizeMake(1080, 1920), [[UIScreen mainScreen] currentMode].size) : \
NO
#define IS_IPHONE_X [UIScreen instancesRespondToSelector:@selector(currentMode)] ? \
CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) : \
NO
#define IS_IPHONE_X [UIScreen instancesRespondToSelector:@selector(currentMode)] ? \
CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) : \
NO
// 上面的表达方式和下面的一样,都是用的三目运算符,只是没有加行尾的“\”
#define IS_IPHONE_X [UIScreen instancesRespondToSelector:@selector(currentMode)] ?CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) : NO
然后在用到的时候,只需要调用就OK了
if (IS_IPHONE_4s) {
// 如果是iPhone4s的话
<#代码...#>
}