本文主要解决一些几个问题
1.第一个问题: 解决导航栏设置颜色后色值变化问题
2.第二个问题: 去掉导航栏下面的哪条线
3.第三个问题:修改状态栏颜色
第一个问题: 解决导航栏设置颜色后色值变化问题
问题描述:
如下图所示,导航栏和下面的View采用的是同一个色值,但是导航栏上出来的效果跟美工设计的效果有差别
解决办法:
这个愿意是由于ios7 以上导航栏默认透明导致的,可以去掉导航栏透明度
在APPdelegate里面全局去掉
[UINavigationBar appearance].translucent = NO;
或者某一个页面去掉
self.navigationController.navigationBar.translucent = NO;
第二个问题: 去掉导航栏下面的哪条线
产生原因: 是由于苹果默认有shadowImage 导致
解决办法:
在APPdelegate里面全局去掉
// [[UINavigationBar appearance] setBackgroundImage:[[UIImage alloc] init] forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];
// [[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];
或者在具体的某一个页面去掉
// [self.navigationController.navigationBar setBackgroundImage:[[UIImage alloc] init] forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];
// [self.navigationController.navigationBar setShadowImage:[[UIImage alloc] init]];
第三个问题:修改状态栏颜色
- (void)setStatusBarBackgroundColor:(UIColor *)color {
UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];
if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) {
statusBar.backgroundColor = color;
}
}