设置导航栏背景颜色:
[[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著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。