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

use*_*109 18 objective-c transparent uinavigationbar ios ios7

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

我尝试过的:

[self.navigationController.navigationBar setBackgroundColor:[UIColor clearColor]];
[self.navigationController.navigationBar setBarTintColor:[UIColor clearColor]];
[self.navigationController.navigationBar setAlpha:0.0];
Run Code Online (Sandbox Code Playgroud)

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

Pra*_*inh 65

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

[self.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
self.navigationBar.shadowImage = [UIImage new];
self.navigationBar.translucent = YES;
Run Code Online (Sandbox Code Playgroud)

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

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

参考来自:使UINavigationBar透明


Har*_*ala 22

您可以使用以下代码使导航栏透明


[self.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
[self.navigationBar setShadowImage:[UIImage new]];
[self.navigationBar setTranslucent:YES];
Run Code Online (Sandbox Code Playgroud)