前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS 15导航栏设置

iOS 15导航栏设置

原创
作者头像
莫空9081
修改2021-09-03 11:02:53
1.8K0
修改2021-09-03 11:02:53
举报
文章被收录于专栏:iOS 备忘录iOS 备忘录

iOS 15导航栏设置

背景

使用Xcode 13.0运行项目到iOS 15的手机上,出现导航栏黑色。但是在低版本Xcode 运行到手机就没有问题。

<!--more-->

修改

设置方法需修改,参考barTintColor not working in iOS 15

原来设置导航栏代码不变,新增设置UINavigationBarAppearance实例对象的属性,然后赋值到全局的 navigationBar 或者单个页面的 navigaitonBar 属性中,取决于项目的设置是全局 NavigationBar 还是单个页面设置(可参考iOS StatusBar 设置)。

代码如下:

代码语言:txt
复制
- (void)updateNavigationBarColor:(UIColor *)color {
    UINavigationBar *bar = self.navigationController.navigationBar;
    if (@available(iOS 13.0, *)) {
        UINavigationBarAppearance *barAppearance = [UINavigationBarAppearance new];
        barAppearance.backgroundColor = color; // 设置背景颜色
        barAppearance.titleTextAttributes = @{NSForegroundColorAttributeName : [UIColor whiteColor],
                                              NSFontAttributeName : [UIFont fontWithName:@"Helvetica-Bold" size:17]}; // 设置导航栏字体颜色和大小
        barAppearance.shadowColor = [UIColor clearColor]; // 设置导航栏底部的分割线不显示
        
        bar.scrollEdgeAppearance = bar.standardAppearance = barAppearance;
        [bar setShadowImage:[UIImage new]];
    } else {
        // Fallback on earlier versions
    }
    [bar setBackgroundImage:[UIImage wps_createImageWithColor:color] forBarMetrics:UIBarMetricsDefault];
}

参考

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • iOS 15导航栏设置
    • 背景
      • 修改
        • 参考
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档