美文网首页
iOS 针对ipX产生各种宏

iOS 针对ipX产生各种宏

作者: 叶熙雯 | 来源:发表于2018-05-03 10:42 被阅读0次
你的小可爱已上线

首先说下思路就是根据安全区去 判断是否是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走吧!记得帮我点点❤ 爱你哟!

相关文章

网友评论

      本文标题:iOS 针对ipX产生各种宏

      本文链接:https://www.haomeiwen.com/subject/sbrkrftx.html