iOS 获取状态栏高度 - 兼容 iOS 13 及以上版本

本文提供获取 iOS 状态栏高度的代码,兼容 iOS 13 及以上版本,并封装成宏定义,方便调用。

代码示例

方法调用

+ (CGFloat)statusBarHeight { 
    CGFloat statusBarHeight = 0; 
    if (@available(iOS 13.0, *)) { 
        statusBarHeight = [UIApplication sharedApplication].windows.firstObject.windowScene.statusBarManager.statusBarFrame.size.height; 
    } else { 
        statusBarHeight = [UIApplication sharedApplication].statusBarFrame.size.height; 
    } 
    return statusBarHeight; 
}

宏定义

#define StatusBarHeight 
({ 
    CGFloat statusBarHeight = 0; 
    if (@available(iOS 13.0, *)) { 
        statusBarHeight = [UIApplication sharedApplication].windows.firstObject.windowScene.statusBarManager.statusBarFrame.size.height; 
    } else { 
        statusBarHeight = [UIApplication sharedApplication].statusBarFrame.size.height; 
    } 
    statusBarHeight; 
})

使用方法

使用 StatusBarHeight 宏获取状态栏高度,例如:

NSLog(@'状态栏高度:%f', StatusBarHeight);

说明

该代码兼容 iOS 13 及以上版本,在 iOS 13 之前使用 [UIApplication sharedApplication].statusBarFrame.size.height 获取状态栏高度,在 iOS 13 及以上版本使用 [UIApplication sharedApplication].windows.firstObject.windowScene.statusBarManager.statusBarFrame.size.height 获取状态栏高度。

iOS 获取状态栏高度 - 兼容 iOS 13 及以上版本

原文地址: https://www.cveoy.top/t/topic/qesX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录