导航栏不透明

Posted

技术标签:

【中文标题】导航栏不透明【英文标题】:Navigation Bar not transparent 【发布时间】:2014-03-13 20:22:56 【问题描述】:

Apple say this:

barTintColor

除非您将 translucent 属性设置为 NO,否则该颜色默认为半透明。

那么为什么我的代码会生成一个不透明的导航栏?

self.navigationController.navigationBar.barTintColor = [UIColor colorWithRed:0/255.0f     green:119/255.0f blue:255/255.0f alpha:1.0f];

我尝试添加这个以防万一,但没有运气。

self.navigationController.navigationBar.translucent = YES;

谢谢

【问题讨论】:

【参考方案1】:

而不是这个

self.navigationController.navigationBar.barTintColor = [UIColor colorWithRed:0/255.0f     green:119/255.0f blue:255/255.0f alpha:1.0f];

你为什么不尝试设置背景颜色

self.navigationController.navigationBar.backgroundColor = [UIColor colorWithRed:0/255.0f     green:119/255.0f blue:255/255.0f alpha:1.0f];

栏是半透明的:)

根据您的需要。这将为导航栏提供纯色

NSArray *ver = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];
if ([[ver objectAtIndex:0] intValue] >= 7) 
self.navigationController.navigationBar.barTintColor = [UIColor redColor];
self.navigationController.navigationBar.translucent = NO;
else 
self.navigationController.navigationBar.tintColor = [UIColor redColor];

【讨论】:

谢谢,但是颜色变淡了,太苍白了。我无法让它像手动拖动导航栏并选择一种颜色并选中半透明一样变暗。这似乎根本不对。 可以改变alpha值,得到想要的结果! 一个半透明的NavigationBar没有饱满和深沉的颜色。如果ViewController的背景颜色是白色,NavigationBar会显得更亮。 1.0 以上的任何东西都没有区别。抱歉,我觉得我一定遗漏了一些非常明显的东西,但它不起作用。 filou:如果我拖入一个导航栏并给它一个色调,颜色会比这段代码暗得多。 你能解释一下你想要达到的目标吗?即你的背景颜色是什么,你希望你的导航栏有什么?【参考方案2】:

在您的 appDelagate.m 中使用“外观”代理要容易得多。在您的 didGinishLaunchingWithOptions 方法中包括:

[UINavigationBar appearance].translucent = NO;

【讨论】:

【参考方案3】:

斯威夫特 4

  navigationController!.navigationBar.isTranslucent = false;

【讨论】:

以上是关于导航栏不透明的主要内容,如果未能解决你的问题,请参考以下文章

如何在android中使底部导航栏不透明?

iPhone X 上的导航栏不覆盖状态栏

导航栏不出现

导航栏不可见

UISearchController 搜索栏不隐藏导航栏

ios 7状态栏不继承导航栏颜色