效果一:
今天因为这个小东西被吐槽了...但还是决定记录一下...
其实说是给navigationbar和view设置同一张图片是不对的,应该是隐藏navigationbar,再去掉statusbar的背景色,添加view
最开始我想成隐藏bar和status,自己仿照status添加一个有网络/时间/电量的view.(因为我事先不知道有方法...),但是觉得这样脑洞太大了(而且太麻烦),所以便去群里问了一下...然后你没看错...我被群嘲了(huo gai)....
后来说了半天有不懂我问题的,有要继续打我的,最终还是有人抛出了我想要的答案(此处羞涩(wei suo)一笑)
好吧其实就两句代码(捂脸)
self.navigationController.navigationBar.hidden = YES; // 隐藏navigationbar
self.automaticallyAdjustsScrollViewInsets = NO; //隐藏statusbar的白色背景
效果二:
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
[self setNavigationBarImageColor:[UIColor redColor]]; // 调用
//去除导航栏下方的横线
- (void)setNavigationBarImageColor:(UIColor *)color {
[self.navigationController.navigationBar setBackgroundImage:[self createImageWithColor:color]
forBarPosition:UIBarPositionAny
barMetrics:UIBarMetricsDefault];
[self.navigationController.navigationBar setShadowImage:[UIImage new]];
}
-(UIImage*) createImageWithColor:(UIColor*) color
{
CGRect rect=CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [color CGColor]);
CGContextFillRect(context, rect);
UIImage *theImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return theImage;
}