iOS导航栏颜色不一致问题

有时候我们会遇到设置了导航栏的颜色,但是显示的颜色与我们设置的色值有偏差,我们可以通过以下方法解决。
方法1:

- (void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    [self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
    [self.navigationController.navigationBar setShadowImage:[UIImage new]];
}
- (void)viewWillDisappear:(BOOL)animated{
    [super viewWillDisappear:animated];
    [self.navigationController.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
    [self.navigationController.navigationBar setShadowImage:nil];
}

ps: 在viewWillAppearviewWillDisappear 这两个方法中设置,是因为在自定义的导航控制器中统一设置了导航栏的颜色,只是处理在单个页面中色值不一致的问题。但这也会出现一个问题,如果在自定义的导航控制器中统一设置了导航栏的背景图片,还需要处理这些单独的页面,如果多的话就会很麻烦。

方法2:
之所以会出现色差的问题,是因为导航栏有个毛玻璃的效果,只要把translucent设置为NO就可以了。

- (void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    self.navigationController.navigationBar.translucent = NO;
   // 去除导航条底部的细线 
    for(UIView *subview in self.navigationController.navigationBar.subviews){
        for (UIView *view in subview.subviews) {
            if ([view isKindOfClass:[UIImageView class]] && view.bounds.size.height < 1) {
                view.hidden = YES;
                self.shadowImageView = view;
            }
        }
    }
}

- (void)viewWillDisappear:(BOOL)animated{
    [super viewWillDisappear:animated];
    self.navigationController.navigationBar.translucent = YES;
    self.shadowImageView.hidden = NO;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 背景 最近要做一个需求,需要把其中两个页面做成全屏的(无导航栏)。我把这个主要的代码抽出来上传到github上,导...
    半邪亦正阅读 16,436评论 19 54
  • IOS的项目多数会遇到控制状态栏和导航栏的问题,比如隐藏状态栏、控制状态栏的文字颜色等,导航栏也有同样需求。本文总...
    YHWXQ简简单单的生活阅读 1,871评论 1 8
  • 最近项目里有个需求和导航栏的样式定制有关,深入之后发现之前理解的一些概念有些模糊,刚好趁着这次机会全面整理了一下。...
    hi_xgb阅读 5,201评论 4 39
  • 最近项目里有个需求和导航栏的样式定制有关,深入之后发现之前理解的一些概念有些模糊,刚好趁着这次机会全面整理了一下。...
    Kevin追梦先生阅读 571评论 0 0
  • 交友,益者三友:友直,友谅,友多闻。损者三友:友便辟,友善柔,友便佞。 友直:直,指的是正直。友谅:友谅《说文解字...
    袁澜月阅读 1,373评论 5 3

友情链接更多精彩内容