2023年12月6日发(作者:vivoapex2019多少钱)
IOS判断为iPhoneX的几种方法
1.判断屏幕大小
第一种:
#define isiPhoneX ([UIScreen instancesRespondToSelector:@selector(currentMode)] ?
CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) : NO)
第二种:
#define isiPhoneX (CGSizeEqualToSize(CGSizeMake(375.f, 812.f), [UIScreen mainScreen].) ||
CGSizeEqualToSize(CGSizeMake(812.f, 375.f), [UIScreen mainScreen].))
第三种:
#define isiPhoneX ([UIScreen mainScreen]. == 812.0f || [UIScreen
mainScreen]. == 896.0f)
第四种:(推荐)
//iPhone X 底部安全距离
#define LJ_SafeBottomHeight [LJUserManager safeBottomHeight]
//是否iPhone X
#define LJ_iPhoneX [LJUserManager isiPhoneX]
//判断是否为iphone X
+ (BOOLBOOL)isiPhoneX {
ifif(@available@available(iOS11.0, *)) {
UIWindow*keyWindow = [[[UIApplicationsharedApplication]delegate]window];
CGFloatbottomSafeInset = ;
ifif(bottomSafeInset ==34.0f|| bottomSafeInset ==21.0f) {
returnreturnYES;YES
}
}
returnreturn NONO;
}
//安全区域高度
+ (floatfloat)safeBottomHeight {
ifif(@available@available(iOS11.0, *)) {
returnreturn [[[UIApplication sharedApplication] delegate] window].;
}
returnreturn 0.0f;
}
2.判断UIWindow的safeAreaInsets,当返回值为0时,为长方形,非0时即认为是iphone x,原理是判断是传统长方形
还是圆角矩形。
Swift:
func isIPhoneXType() -> Bool {
guard #available(iOS 11.0, *) else {
return false
}
return s[0].safeAreaInsets !=
}
OC:
static inline BOOL isIPhoneXSeries() {
BOOL iPhoneXSeries = NO;
if (terfaceIdiom != UIUserInterfaceIdiomPhone) {
return iPhoneXSeries;
}
if (@available(iOS 11.0, *)) {
UIWindow *mainWindow = [[[UIApplication sharedApplication] delegate] window]; if
( > 0.0) {
iPhoneXSeries = YES;
}
}
return iPhoneXSeries;
}
发布者:admin,转转请注明出处:http://www.yc00.com/num/1701795722a1147861.html
评论列表(0条)