判断刘海屏有很多种方法
1.通过机型
优点:准确
缺点:新增机型就要重新添加判断
2.通过获取keyWindow的safeAreaInsets.top
优点:准确,适用场景多,基本app都可以适用
缺点:当你开发的是一个SDK时,有可能接入的app获取不到keywindow,就会引起崩溃的问题
使用方法:UIApplication.sharedApplication.keyWindow.safeAreaInsets.top
3.通过状态栏的高度判断
优点:适用当前所有机型,且不受keywindow的影响
缺点:可能以后新机型会有问题
使用方法:
//获取状态栏高度
float statusHeight = [[UIApplication sharedApplication] statusBarFrame].size.height;
if (statusHeight > 20){
return YES;///是刘海屏
}else{
return NO;///不是刘海屏
}