查看: 49|回覆: 0

iOS开发之适配判断刘海屏幕

[複製鏈接]

1

主題

0

回帖

0

積分

热心网友

金币
0
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2009-10-5
發表於 2020-10-14 09:59:00 | 顯示全部樓層 |閲讀模式

我们在开发中为了适配iPhoneX之后的刘海屏幕,经常得加上各种判断,每年苹果除了新的机型之后可能又得修改

所以给大家介绍一个通用的方法

#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

 

下面这种也还是可以的

#define isIphoneX ({\
BOOL isPhoneX = NO;\
if (@available(iOS 11.0, *)) {\
    if (!UIEdgeInsetsEqualToEdgeInsets([UIApplication sharedApplication].delegate.window.safeAreaInsets, UIEdgeInsetsZero)) {\
    isPhoneX = YES;\
    }\
}\
isPhoneX;\
})

 



来源:https://www.cnblogs.com/hecanlin/p/13813175.html
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部