窗口使用UIWindowLevelStatusBar + 1会在iOS 8上隐藏状态栏

6

我一直在状态栏上方添加一个控制台窗口,链接如下:

enter image description here

通过将它的windowLevel设置为UIWindowLevelStatusBar + 1,在iOS 7.x及以下版本中运行良好(截图)。

但在iOS 8中,相同的代码会使状态栏消失并偏移导航栏。我尝试了几个不同的窗口级别,但没有成功。

我在许多项目中使用该库,并注意到当显示级别为UIWindowLevelAlert的“PopUpWindow”时,状态栏确实会显示出来。 因此,一个可能的解决方案是在那里添加一个模拟窗口,但这样做很不规范。


如果您将级别设置为“StatusBar”+1,则应覆盖状态栏。您正在特别将级别设置为高于状态栏。 - rmaddy
是的。这就是我打算做的。状态栏仍然存在,您仍然可以“点击以滚动到顶部”,更重要的是布局和导航栏会被正确定位。但是这在iOS 8中出现了问题。 - Rivera
1个回答

7

尝试在UIWindow的根视图控制器上实现-prefersStatusBarHidden方法。这对我有用。


好的,谢谢!这比预期的更有效,因为默认实现已经返回了“NO”。 - Rivera
即使将键和statusBar+1窗口的rootViewController的prefersStatusBarHidden重写为返回NO,它在iOS9上对我不起作用。 - burax
我撤回之前的说法。我的问题是状态栏下面有黑色背景。添加一个新窗口会将状态栏颜色更改为黑色,看起来好像消失了。实现 preferredStatusBarStyle 解决了这个问题。 - burax

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接