之前的获得状态栏高度代码是
- (CGFloat)statusRectHeight {
if (@available(iOS 13.0, *)) {
_statusRectHeight = [UIApplication sharedApplication].windows.firstObject.windowScene.statusBarManager.statusBarFrame.size.height;
}
else {
_statusRectHeight = [[UIApplication sharedApplication] statusBarFrame].size.height;
}
return _statusRectHeight;
}
上面的代码,iPhone14之前手机获得状态栏高度都是正确的,刘海屏也没问题,
但是灵动岛手机有问题,获得高度是44是错误的。iPhone14pro iPhone14pro max状态栏高度应该是56。
应该用下面的代码解决这问题
- (CGFloat)statusRectHeight {
if (@available(iOS 13.0, *)) {
UIWindow *window = [UIApplication sharedApplication].windows.firstObject;
CGFloat topPadding = window.safeAreaInsets.top;
_statusRectHeight = topPadding ?: 20.0;
} else {
_statusRectHeight = [UIApplication sharedApplication].statusBarFrame.size.height;
}
return _statusRectHeight;
}