IOS导航栏颜色设置

1. 关闭暗黑模式

在iOS发布iOS13系统后,新增了黑暗模式,当用户把黑暗模式打开后,app会出现很多显示问题,最让人头疼就是导航栏的现实与控件的背景颜色现实,为了解决这个问题,我建议在没有需求强制要求下,我们将黑暗模式直接屏蔽比较好,当黑暗模式开启后,我们在我们的程序的info.plist中添加以下配置:(禁用黑暗模式)
在info.plist中的Appearance配置UIUserInterfaceStyleLight或者Light

代码添加,在info.plist中添加UIViewControllerBasedStatusBarAppearance配置

<key>UIUserInterfaceStyle</key>
<string>Light</string>

2. 修改状态栏背景色

- (void)setStatusBarBackgroundColor:(UIColor *)color {
    
    if(@available(iOS 13.0, *)) {
        
        NSSet *set = [UIApplication sharedApplication].connectedScenes;
        UIWindowScene *windowScene = [set anyObject];
        UIStatusBarManager *statusBarManager = windowScene.statusBarManager;

        static UIView *statusBar =nil;
        if(!statusBar) {
            static dispatch_once_t onceToken;
            dispatch_once(&onceToken, ^{
                statusBar = [[UIView alloc] initWithFrame:statusBarManager.statusBarFrame] ;
                [[Util getRootWindow] addSubview:statusBar];
                statusBar.backgroundColor= color;
                
            });
        }else{
            statusBar.backgroundColor= color;
        }
    }else{
        UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];
        if([statusBar respondsToSelector:@selector(setBackgroundColor:)]) {
            statusBar.backgroundColor= color;
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容