导航栏透明度问题

设置导航栏背景颜色:

[[UINavigationBar appearance] setBarTintColor:[UIColor blueColor]];

此方法不能设置颜色透明度,如果需要设置背景色透明度,只能用图片代替或者删除底层遮盖视图
删除底层视图(不建议修改)

for (UIView *view in self.navigationController.navigationBar.subviews) { 
if ([view isKindOfClass:NSClassFromString(@"_UINavigationBarBackground")]) { 
[view removeFromSuperview]; 
}
}

而且删除底层视图之后,设置backGroundColor会导致状态栏颜色不会跟着变化!
图片代替

[[UINavigationBar appearance] setBackgroundImage:[UIImageimageNamed:@""] forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setTranslucent:YES/NO];

此处如果不设置透明,即使设置图片作为NavigationBar背景,底层仍有一层默认黑色遮盖!(默认颜色是黑色)TIPS:如果想把导航栏变透明的话,可以这样做:

[[UINavigationBar appearance] setBackgroundImage:[[UIImage alloc] init] forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];

文/月咏蝴蝶(作者)原文链接:http://www.jianshu.com/p/784d5b758efd著作权归作者所有,转载请联系作者获得授权,并标注“作者”。

你可能感兴趣的:(导航栏透明度问题)