覆盖 UINavigationBar 时 iOS 7 状态栏变黑
Posted
技术标签:
【中文标题】覆盖 UINavigationBar 时 iOS 7 状态栏变黑【英文标题】:iOS 7 Status Bar Turns Black When Overriding UINavigationBar 【发布时间】:2014-05-27 17:52:05 【问题描述】:我正在继承 UINavigationBar
以便我可以覆盖 drawRect
方法。但是,当我在 ios 7 中这样做时,状态栏会完全变黑。根本没有文字。在 iOS 6 中它没有这个问题。状态栏应该在哪里。
- (void)drawRect:(CGRect)rect // status bar goes pitch black
[super drawRect:rect];
如果我注释掉这个方法,状态栏就会返回。如何恢复状态栏?
2014 年 4 月 15 日更新
我尝试使用找到的代码 here 将状态栏设置为其他内容,但似乎没有任何效果。
【问题讨论】:
黑色是窗口。状态栏有文字,但也是黑色的,黑底黑字很难看。在 iOS 7 中,您可以将文本改为白色。 好的,所以我发现了如何将文本颜色更改为白色。但我不确定如何将背景颜色更改为半透明的。我试过玩 status_bar_tinting_parameters > navigation_bar >Translucent> YES 似乎没有做任何事情 在 iOS 7 中,状态栏是透明的,你应该增加导航栏的高度,让它出现在状态栏的后面。看看任何标准的 iOS 7 应用程序,你都会看到。 对于标准导航界面,这将自动发生。如果您要在界面中添加自己的导航栏,则必须按照我在此处解释的方式自己进行操作:***.com/a/22232805/341994 可能你的drawRect:
覆盖在某种程度上搞砸了这整个事情。
【参考方案1】:
我找到了一个解决方案。文本最初是黑色背景上的黑色。我还没有弄清楚如何使背景透明,但我想有白色的文字就足够了。
https://***.com/a/18184831/3400034
【讨论】:
以上是关于覆盖 UINavigationBar 时 iOS 7 状态栏变黑的主要内容,如果未能解决你的问题,请参考以下文章
如何防止 UINavigationBar 在 iOS 7 中覆盖视图顶部?
iOS 7(子层)AVPlayer Fullscreen animate 需要上面(覆盖)UINavigationBar
Xamarin iOS UINavigationBar 奇怪的覆盖