iOS开发之给navigationbar和view设置同一张图片

效果一:
iOS开发之给navigationbar和view设置同一张图片_第1张图片
屏幕快照 2017-06-09 15.55.31.png
   今天因为这个小东西被吐槽了...但还是决定记录一下...

其实说是给navigationbar和view设置同一张图片是不对的,应该是隐藏navigationbar,再去掉statusbar的背景色,添加view

最开始我想成隐藏bar和status,自己仿照status添加一个有网络/时间/电量的view.(因为我事先不知道有方法...),但是觉得这样脑洞太大了(而且太麻烦),所以便去群里问了一下...然后你没看错...我被群嘲了(huo gai)....

iOS开发之给navigationbar和view设置同一张图片_第2张图片
Simona_Test1

后来说了半天有不懂我问题的,有要继续打我的,最终还是有人抛出了我想要的答案(此处羞涩(wei suo)一笑)

好吧其实就两句代码(捂脸)

    self.navigationController.navigationBar.hidden = YES; // 隐藏navigationbar
    self.automaticallyAdjustsScrollViewInsets = NO; //隐藏statusbar的白色背景
效果二:
iOS开发之给navigationbar和view设置同一张图片_第3张图片
Simona_Test2
 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;
}

你可能感兴趣的:(iOS开发之给navigationbar和view设置同一张图片)