首先说下思路就是根据安全区去 判断是否是X系列,以前的因为只有一个iPhone X,现在X繁衍了好多不同屏幕大小我们不能根据屏幕大小去判断,准确说不是不能如果更多尺寸岂不是很多内容太麻烦了,这样可以大大减少代码量,根据不同机型可以对导航栏高度,状态栏高度,分栏控制器高度进行赋值计算等!下面上代码
//MARK: - 判断X系列的安全区 判断是否是X系列
var isIPhoneX:Bool{
var iPhoneX:Bool = false
if UIDevice.current.userInterfaceIdiom != UIUserInterfaceIdiom.phone{
return iPhoneX
}
if #available(iOS 11.0, *) {
if Double((UIApplication.shared.delegate?.window??.safeAreaInsets.bottom)!) > 0.0 {
iPhoneX = true
}
}
return iPhoneX
}
这样我们可以根据返回值去判断是不是X系列手机然后再进行这样操作,这些代码不陌生吧!哈哈哈哈是不是就一个方法很简单解决很多问题呢
var height64 : CGFloat {
if isIPhoneX {
return CGFloat(88)
}else{
return CGFloat(64)
}
}
var height20 : CGFloat {
if isIPhoneX {
return CGFloat(44)
}else{
return CGFloat(20)
}
}
var height49 : CGFloat {
if isIPhoneX {
return CGFloat(83)
}else{
return CGFloat(49)
}
}
oc版本 这个是全局的宏 通过安全区判断是不是ipx系列的手机
#define isIPhoneXSeries \
({BOOL isPhoneX = NO;\
if (@available(iOS 11.0, *)) {\
isPhoneX = [[UIApplication sharedApplication] delegate].window.safeAreaInsets.bottom > 0.0;\
}\
(isPhoneX);})
#define height49 (isIPhoneXSeries ? 83 : 49)
#define height20 (isIPhoneXSeries ? 44 : 20)
需要的人可以直接copy走吧!记得帮我点点❤ 爱你哟!
网友评论