今天更新了xcode13,运行项目发现iOS15以上的手机导航栏和状态栏之前设置的颜色等属性都不起作用了,都变成了黑色,滚动的时候才能变成正常的颜色,经确认得用UINavigationBarAppearance和UITabBarAppearance这两个属性对导航栏和状态栏设置才能生效。以下是示例代码(仅是背景颜色),具体属性根据自己实际情况进行设置
![](https://img-blog.csdnimg.cn/088fd6a10e064fffb81934b5621a8227.png)
以下是代码:
if(@available(iOS 15.0,*)){
UINavigationBarAppearance*bar = [UINavigationBarAppearance new];
bar.backgroundColor = [UIColor whiteColor];
bar.backgroundEffect = nil;
self.navigationController.navigationBar.scrollEdgeAppearance = bar;
self.navigationController.navigationBar.standardAppearance = bar;
UITabBarAppearance*bar2 = [UITabBarAppearance new];
bar2.backgroundColor = [UIColor whiteColor];
bar2.backgroundEffect = nil;
self.tabBarController.tabBar.scrollEdgeAppearance = bar2;
self.tabBarController.tabBar.standardAppearance = bar2;
}
else{
// Fallback on earlier versions}
}
附:uiscrollview为根视图时,无法到顶,状态栏为黑色的调整
if(@available(iOS 11.0, *)){
self.contentScrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}else {
// Fallback on earlier versions
self.automaticallyAdjustsScrollViewInsets = NO;
}