美文网首页iOS
iOS 判断当前设备是否为刘海屏幕

iOS 判断当前设备是否为刘海屏幕

作者: CoderGuogt | 来源:发表于2020-04-20 14:44 被阅读0次

    iPhone 自从 iPhone X(iOS11) 设备开始了 刘海屏幕,在之前项目中都是使用判断设备屏幕的大小来判断是否是刘海屏幕,但是随着苹果设备的更新,这种方式已经不合适继续使用了。

    苹果在 iOS11 推出了一个 安全区域 的概念,我们可以通过这个安全区域来判断当前设备是否为刘海屏幕

    #define kIsBangsScreen ({\
        BOOL isBangsScreen = NO; \
        if (@available(iOS 11.0, *)) { \
        UIWindow *window = [[UIApplication sharedApplication].windows firstObject]; \
        isBangsScreen = window.safeAreaInsets.bottom > 0; \
        } \
        isBangsScreen; \
    })
    

    在这里之所以使用 windows 是因为,keyWindowdelegate.window有时候会获取不到,为null

    iOS13环境 iPhone11 Pro Max模拟器 iOS12.4 iPhone5s 模拟器

    经过以上测试,发现每次 windows 数组都是有值,所以直接从windows数组中取出一个window,再进行判断。

    相关文章

      网友评论

        本文标题:iOS 判断当前设备是否为刘海屏幕

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