在iOS 7中,导航栏对于在其下滚动的内容具有模糊效果。我希望我的导航栏是透明的,这样就可以实现:
[[UINavigationBar appearance] setBarStyle:UIBarStyleDefault];
[[UINavigationBar appearance] setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setShadowImage:[UIImage new]];
[[UINavigationBar appearance] setBackgroundColor:[UIColor clearColor]];
但我希望内容也模糊不清。我尝试了以下但没有运气:
[[UINavigationBar appearance] setBarTintColor:[UIColor clearColor]];
[[UINavigationBar appearance] setBarStyle:UIBarStyleDefault];
[[UINavigationBar appearance] setShadowImage:[UIImage new]];
[[UINavigationBar appearance] setBackgroundColor:[UIColor clearColor]];
相反,这会使导航栏模糊内容视图但是黑色。如果我删除了setBarTintColor
,则导航栏会模糊内容,但它会显示为白色。我尝试了其他各种组合,但导航栏是白色或黑色。
我已经查看了几个SO问题,但他们并没有帮助我。他们回答如何获得completely transparent navbar或get a certain colour,当我想要的是清晰/透明,没有任何颜色色调时。
我将如何实现这一目标?感谢您的帮助,非常感谢!
答案 0 :(得分:0)
让它变得半透明。
将其子类化,并添加代码 -
- (id)initWithRootViewController:(UIViewController *)rootViewController
{
if (self = [super initWithRootViewController:rootViewController]) {
self.navigationBar.translucent = YES;
}
return self;
}
答案 1 :(得分:0)
试试这个,它基于ToolBar的模糊透明度,你也可以为该栏添加一些颜色: 这个解决方案很好,你需要iOS7支持
[self.navigationController.navigationBar setBackgroundImage:[UIImage new]
forBarMetrics:UIBarMetricsDefault];
self.navigationController.navigationBar.shadowImage = [UIImage new];
self.navigationController.navigationBar.translucent = YES;
self.navigationController.view.backgroundColor = [UIColor clearColor];
UIToolbar* blurredView = [[UIToolbar alloc] initWithFrame:self.navigationController.navigationBar.bounds];
[blurredView setBarStyle:UIBarStyleBlack];
[self.navigationController.navigationBar insertSubview:blurredView atIndex:0];