在这个版本之后要改状态栏颜色 它有一个判断状态栏高度的机制,若把状态栏高度设置为 小于 默认高度的话,设置状态栏背景颜色将无效!只有 >= 默认高度,颜色设置才有效.
-(UIStatusBarStyle)preferredStatusBarStyle {
static UIView *statusBar;
if (@available(iOS 13.0, *)) {
// iOS 13 弃用keyWindow属性 从所有windowl数组中取
CGRect rect = [UIApplication sharedApplication].keyWindow.windowScene.statusBarManager.statusBarFrame;
statusBar = [[UIView alloc]initWithFrame:rect] ;
[[UIApplication sharedApplication].keyWindow addSubview:statusBar];
}else{
dispatch_async(dispatch_get_main_queue(),^{
statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];
});
}
statusBar.backgroundColor = [UIColor grayColor];
// statusBar.alpha = 1.0f;
// if (@available(iOS 13.0, *)) {
// return UIStatusBarStyleDarkContent;
// } else {
return UIStatusBarStyleLightContent;
// }
}