Objective-C 灵动岛iPhone状态栏获得高度不对 iOS iPhone14pro iPhone14pro max状态栏获得高度不对

之前的获得状态栏高度代码是

  • (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;
    }
posted @ 2025-10-17 12:16  代码只是一种思想  阅读(42)  评论(0)    收藏  举报