iOS 13后状态栏获取高度的方法

由于iPhone12等机型状态栏高度不是固定的了,所以我们要动态取状态栏的高度。
在iOS13系统,之前的StatusBar高度获取被弃用,使用UIStatusBarManager来获取StatusBar的状态和属性,由于状态栏高度一般宏定义,所以使用工具类声明方法获取高度,宏定义时调用工具类方法获取,易读性高。

+ (CGFloat)getStatusBarHight {
   float statusBarHeight = 0;
   if (@available(iOS 13.0, *)) {
       UIStatusBarManager *statusBarManager = [UIApplication sharedApplication].windows.firstObject.windowScene.statusBarManager;
       statusBarHeight = statusBarManager.statusBarFrame.size.height;
   }
   else {
       statusBarHeight = [UIApplication sharedApplication].statusBarFrame.size.height;
   }
   return statusBarHeight;
}
// 状态栏高度
#define kStatusBarHeight [ZXKHelpTools getStatusBarHight]

你可能感兴趣的:(iOS 13后状态栏获取高度的方法)