iOS 15导航栏navigationBar 背景色修改

在升级到iOS 15后,遇到导航栏背景色在滑动时异常的问题。原来通过设置`translucent`属性和`barTintColor`来改变颜色的方法不再生效。解决方法是在代码中加入特定判断,确保在新系统环境下正确设置导航栏的背景颜色、字体大小和颜色。

升级xcode和手机系统导航栏颜色无法变化 (滑动tableview的时候出现设置的效果停止滑动有消失)

之前代码:

    self.navigationController.navigationBar.translucent = NO;

    //设置导航栏背景颜色

    self.navigationController.navigationBar.barTintColor = k_main_nav_bar_color;

    //设置导航栏字体大小

    [self.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName:k_title_color,NSFontAttributeName:TEXT_BIG_S_FONT18}];

    /*导航栏字体颜色*///左右键颜色图标默认颜色

    [self.navigationController.navigationBar setTintColor:k_title_color];

之后修改(加入判断):

    //ios 15系统
    if (@available(iOS 15.0, *)) {
        UINavigationBarAppearance *appperance = [[UINavigationBarAppearance alloc]init];
        //添加背景色
        appperance.backgroundColor = k_main_tab_bar_color;
        appperance.shadowImage = [[UIImage alloc]init];
        appperance.shadowColor = nil;
        //设置字体颜色大小
        [appperance setTitleTextAttributes:@{NSForegroundColorAttributeName:k_title_color,NSFontAttributeName:TEXT_BIG_S_FONT18}];

        self.navigationController.navigationBar.standardAppearance = appperance;
        self.navigationController.navigationBar.scrollEdgeAppearance = appperance;

    }

### 修改 iOS 导航栏背景颜色的方法 在 iOS 开发中,自定义 `UINavigationBar` 的背景颜色可以通过多种方式实现。以下是几种常见的方法: #### 方法一:全局设置导航栏背景颜色 可以在应用程序启动时通过 `AppDelegate.m` 文件中的 `didFinishLaunchingWithOptions:` 方法统一设置导航栏的背景颜色。具体代码如下所示: ```objective-c [[UINavigationBar appearance] setBarTintColor:[UIColor yellowColor]]; ``` 此代码片段会将整个应用内的所有导航栏背景颜色更改为黄色[^3]。 如果需要指定其他颜色而非标准的颜色常量,则可以使用 RGB 值创建自定义颜色。例如: ```objective-c #define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0] [[UINavigationBar appearance] setBarTintColor:UIColorFromRGB(0x067AB5)]; ``` 这段代码允许开发者利用宏定义函数 `UIColorFromRGB` 来快速生成基于十六进制值的颜色,并将其应用于导航栏背景[^2]。 #### 方法二:局部调整单个视图控制器的导航栏背景色 对于特定场景下仅需更改某个页面上的导航栏颜色的情况,可以直接针对对应的 `UIViewController` 设置其所属的 `navigationController.navigationBar.barTintColor` 属性。例如,在某 ViewController 中加入以下代码即可完成操作: ```objective-c self.navigationController.navigationBar.barTintColor = [UIColor blackColor]; ``` #### 方法三:采用图片作为背景 除了单纯改变颜色外,还可以加载一张图像并设为导航条底纹图案。这一步骤同样支持两种形式——要么作用于全项目范围,要么限定至单独实例级别。下面展示的是前者做法的一个例子: ```objective-c UIImage *image = [UIImage imageNamed:@"navBackground"]; [self.navigationController.navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault]; ``` 以上就是关于如何定制 iOS 应用程序里 Navigation Bar 背景色的主要介绍内容[^1]。 ###
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值