如何在iOS 7中使导航栏透明?

时间:2013-12-02 01:21:22

标签: ios objective-c ios7 uinavigationbar transparent

有没有办法让导航控制器的栏完全透明?

我尝试了什么:

[self.navigationController.navigationBar setBackgroundColor:[UIColor clearColor]];
[self.navigationController.navigationBar setBarTintColor:[UIColor clearColor]];
[self.navigationController.navigationBar setAlpha:0.0];

但酒吧的外观不会改变,并保持白色半透明。 我试图看到酒吧项目,但不是酒吧本身。有人能指出我正确的方向吗?感谢

2 个答案:

答案 0 :(得分:65)

如果有人想知道如何在iOS 7中实现这一点,这里有一个解决方案(iOS 6兼容)

[self.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
self.navigationBar.shadowImage = [UIImage new];
self.navigationBar.translucent = YES;

由于UINavigationBar文档中讨论的行为,导航栏上的半透明设置为YES可以解决问题。我将在这里报告相关的片段:

如果在具有不透明自定义背景图像的导航栏上将此属性设置为YES,导航栏将对图像应用小于1.0的系统不透明度。

参考文献:Make UINavigationBar transparent

答案 1 :(得分:22)

您可以使用以下代码

使导航栏透明
[self.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
[self.navigationBar setShadowImage:[UIImage new]];
[self.navigationBar setTranslucent:YES];