美文网首页
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