设置导航栏背景颜色:
[[UINavigationBar appearance] setBarTintColor:[UIColor blueColor]];
此方法不能设置颜色透明度,如果需要设置背景色透明度,只能用图片代替或者删除底层遮盖视图
- 删除底层视图(不建议修改)
for (UIView *view in self.navigationController.navigationBar.subviews) {
if ([view isKindOfClass:NSClassFromString(@"_UINavigationBarBackground")]) {
[view removeFromSuperview];
}
}
而且删除底层视图之后,设置backGroundColor会导致状态栏颜色不会跟着变化!
- 图片代替
[[UINavigationBar appearance] setBackgroundImage:[UIImage
imageNamed:@""] 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]];