美文网首页
iOS 判断设备是齐刘海机型

iOS 判断设备是齐刘海机型

作者: 魔力双鱼 | 来源:发表于2018-12-03 18:07 被阅读0次

    iOS 判断机型是否为 iPhone X、XR、XS、XS Max ........的方法.

    诉求:

    出iPhone X的时候,写个宏LL_iPhoneX,是通过屏幕宽高去判定的。齐刘海设备越出越多,不能再一一去判断,代码写得多不说,每次出新款都要发版很不方便。

    实现原理:

    由于iphone x屏幕不是传统的长方形了,而是圆角矩形。如何判断当前的屏幕是长方形还是圆角矩形呢? 可以使用windows的safeAreaInsets方法,当返回值为0时,为长方形,非0时即认为是iphone x.
    iOS11之前还没出齐刘海设备,所以iOS11之前的设备都是长方形。

    解决:写个宏定义:

    // 判断是否为iPhone X 系列  这样写消除了在Xcode10上的警告。
    #define LL_iPhoneX \
    ({BOOL isPhoneX = NO;\
    if (@available(iOS 11.0, *)) {\
    isPhoneX = [[UIApplication sharedApplication] delegate].window.safeAreaInsets.bottom > 0.0;\
    }\
    (isPhoneX);})
    

    打印了CGFloat f = [[UIApplication sharedApplication] delegate].window.safeAreaInsets.bottom.在齐刘海设备是34,长方形设备上是0.
    OK!

    相关文章

      网友评论

          本文标题:iOS 判断设备是齐刘海机型

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