这篇简书作者,总结很是到位。
http://www.jianshu.com/p/63f758796438
但是问题是我遇到了导航栏被隐藏时,该怎么办呢?
我注意到文章有这么一句话:
除了改变状态栏的前景色(文字颜色,wifi颜色,时间颜色,电池颜色),就是改变背景色.由于状态栏区域上的控件是隐藏的,所以只要在状态栏区域被渲染了颜色,状态栏的背景颜色就跟着一起改变,从而改变了状态栏的背景颜色.
关键点: 只要在状态栏区域 的地方 被渲染了颜色, !!!
我们直接自定义一个uiview 或者uiimageView 设置一下背景颜色,或者背景图片
UIView *statusBarView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 20)];
statusBarView.backgroundColor = [UIColor greenColor];
[[[[UIApplication sharedApplication] windows] firstObject] addSubview: statusBarView]
注意:这里务必区域是 (0,0,kScreenWidth,20 )