iOS13 中获取状态栏的方法会造成崩溃
UIView *statusBarView = [[UIApplication sharedApplication] valueForKeyPath:@"statusBar"];
iOS13上状态栏
定义方法:
- (void)setStatusBarBackgroundColor:(UIColor *)color
{
UIView *statusBar;
if (@available(iOS 13.0, *))
{
UIWindow *keyWindow = [UIApplication sharedApplication].windows[0];
statusBar = [[UIView alloc]initWithFrame:keyWindow.windowScene.statusBarManager.statusBarFrame] ;
[keyWindow addSubview:statusBar];
}
else
{
statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];
}
if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) {
statusBar.backgroundColor = color;
}
}
调用方法,设置颜色:
[self setStatusBarBackgroundColor:[UIColor lightGrayColor];