改变半透明黑色UINavigationBar的颜色

34

我曾多次遇到这个问题,但从未找到解决方案。 可以将UINavigationController的navigationBar设置为黑色半透明,如下所示:

self.navigationController.navigationBar.barStyle=UIBarStyleBlackTranslucent;

另外,UINavigationBar中有一个translucent属性,文档中说:

当设置为YES时,无论bar style如何,导航栏都会以部分透明的方式绘制。不透明度固定且不能更改。在导航栏由导航控制器对象管理时,可以设置此属性的值。

我尝试了一下

self.navigationcontroller.navigationBar.tintColor=[UIColor blueColor];
self.navigationcontroller.navigationBar.translucent=YES;

有许多变化方式:首先设置半透明属性,在AppDelegate和ViewController中设置,先设置barstyle等等。

结果总是相同的:没有透明度。因此我的问题是:

是否真的有可能将半透明UINavigationBar的颜色更改为不同于黑色的颜色(最好是在UINavigationController内)?

希望能提供一个安全的解决方案。

谢谢,m

4个回答

50

一旦你知道了它,它就相当简单:

self.navigationController.navigationBar.tintColor = [UIColor blueColor];
self.navigationController.navigationBar.alpha = 0.7f;
self.navigationController.navigationBar.translucent = YES;

translucent属性似乎只确定主视图是否可见于导航栏下方,并适当调整视图大小。


9
我注意到的副作用是它改变了整个navigationBar的alpha(不仅仅是背景)。具体来说,标题颜色不再是“亮白色”,看起来也有0.7f的透明度。 - bobtheowl2
我想说的是,如果你在viewDidLoad中有这段代码if ([self respondsToSelector:@selector(edgesForExtendedLayout)]) self.edgesForExtendedLayout = UIRectEdgeNone;,它将不起作用,而你将会得到一个漂亮的黑色navigationBar。 - Carlos del Blanco
工作正常,但标题和按钮具有相同的透明度。 - jose920405

17

为了更准确地模拟半透明效果,也就是只有导航栏的背景是半透明的,而按钮、标题和其他内容都是不透明的,您可以这样做:

self.navigationController.navigationBar.translucent = YES;
[(UIView*)[self.navigationController.navigationBar.subviews objectAtIndex:0] setAlpha:0.7f];

4

至少在iPhone 4S的iOS 6系统上,您可以制作如下所示的有色半透明导航栏:

self.navigationController.navigationBar.tintColor = [UIColor blueColor];
self.navigationController.navigationBar.translucent = YES;

alpha设置似乎已不再必要。这也使我的标题明亮白色,按钮不透明。

0

这是解决方案:

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
[[UINavigationBar appearance] setBarTintColor:[UIColor colorWithRed:3.f/255.f green:8.f/255.f blue:61.f/255.f alpha:1]];
self.navigationController.navigationBar.translucent = YES;
self.navigationController.navigationBar.barTintColor = [UINavigationBar appearance].barTintColor;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接