开发者社区> 问答> 正文

设置UINavigationBar 的背景图片

我给导航条设置背景图片在didFinishLaunchingWithOptions 方法的代码:

UIImage *navBarImage;
navBarImage = [UIImage imageNamed:@"navbar.png"];
[[UINavigationBar appearance] setBackgroundImage: navBarImage forBarMetrics:UIBarMetricsDefault];

在app中添加一个选项,实现在切换时修改导航条的背景。但是没成功。是不是只有在应用开始之后才能设置背景图片?

我写出来的代码:

- (void) switchChanged:(id)sender {
    UISwitch* switchView = sender;

        if (switchView.isOn) {
            UIImage *navBarImage = [UIImage imageNamed:@"black_nav.png"];
            [[UINavigationBar appearance] setBackgroundImage: navBarImage forBarMetrics:UIBarMetricsDefault];
        }
        else {
            UIImage *navBarImage = [UIImage imageNamed:@"white_nav.png"];
            [[UINavigationBar appearance] setBackgroundImage: navBarImage forBarMetrics:UIBarMetricsDefault];


}


}

展开
收起
爵霸 2016-03-23 11:30:29 2054 0
1 条回答
写回答
取消 提交回答
  • 你要明白的是,使用

    [[UINavigationBar appearance] setBackgroundImage: navBarImage forBarMetrics:UIBarMetricsDefault];

    这段代码来设置UINavigationBar 的背景,这种设置是全局的.所以其它的UINavigationBar想再设置其它的背景的时候,你会发现已经不想作用了.

    如果需要自定义各个UINavigationBar的话,你可以在每个viewcontrollerviewWillAppear: 消息中加入

    [self.navigationController.navigationBar setBackgroundImage:navBarImage forBarMetrics:UIBarMetricsDefault];
    2019-07-17 19:10:38
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载