self.navigationController.navigationBar.barStyle=UIBarStyleBlackTranslucent;
此外,UINavigationBar中有一个半透明的属性,文档说:
如果是,则无论如何都会使用部分不透明度绘制导航栏 酒吧风格。不透明度是固定的,不可以 改变。当允许设置此属性的值时 导航栏由导航控制器对象管理。
我试过
self.navigationcontroller.navigationBar.tintColor=[UIColor blueColor];
self.navigationcontroller.navigationBar.translucent=YES;
和千种变化:首先设置半透明属性,在AppDelegate和ViewController中设置它,首先设置barstyle。 结果总是一样的:没有透明度。因此我的问题是:
是否真的可以将半透明的UINavigationBar的颜色更改为不同于黑色的颜色(最好是在UINavigationController中)?。
我希望有一个可以审核的安全解决方案。
谢谢,m
答案 0 :(得分:50)
一旦你知道,它就相当简单了:
self.navigationController.navigationBar.tintColor = [UIColor blueColor];
self.navigationController.navigationBar.alpha = 0.7f;
self.navigationController.navigationBar.translucent = YES;
translucent
属性似乎只是确定主视图应该在导航栏下可见,并且适当地调整视图大小。
答案 1 :(得分:17)
为了更准确地模仿半透明效果,意味着只有导航栏的背景是半透明的,按钮,标题和其他所有内容都是不透明的,你可以这样做:
self.navigationController.navigationBar.translucent = YES;
[(UIView*)[self.navigationController.navigationBar.subviews objectAtIndex:0] setAlpha:0.7f];
答案 2 :(得分:4)
至少在iPhone 4S的iOS 6中,您可以制作这样的彩色半透明导航栏:
self.navigationController.navigationBar.tintColor = [UIColor blueColor];
self.navigationController.navigationBar.translucent = YES;
似乎不再需要alpha设置。这也使我的标题亮白,我的按钮不透明。
答案 3 :(得分: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;