【问题标题】:Window with UIWindowLevelStatusBar + 1 hides status bar on iOS 8带有 UIWindowLevelStatusBar + 1 的窗口在 iOS 8 上隐藏状态栏
【发布时间】:2014-10-02 02:35:19
【问题描述】:

我一直在添加状态栏的控制台窗口on top

通过将其 windowLevel 设置为 UIWindowLevelStatusBar + 1 直到 iOS 7.x(屏幕截图),这一直很有效。

在 iOS 8 上,相同的代码使状态栏消失并向上偏移导航栏。我尝试了几种不同的窗位,但都没有成功。

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

【问题讨论】:

  • 如果您将级别设置为"StatusBar" + 1,它应该覆盖状态栏。您专门将级别设置为高于状态栏。
  • 是的。这就是我打算做的。状态栏仍然存在,您仍然可以“点击滚动到顶部”的区域,并且更重要的布局和导航栏得到正确定位。然而,这与 iOS 8 不同。

标签: ios ios8 uiwindow uistatusbar


【解决方案1】:

尝试在 UIWindow 的根视图控制器上实现 -prefersStatusBarHidden 方法。为我工作。

【讨论】:

  • 嗯,它成功了,谢谢!出乎意料的是,默认实现已经返回 NO
  • 在 iOS9 上对我不起作用,即使 key 和 statusBar+1 窗口都覆盖了它们的 rootViewControllers'prefersStatusBarHidden 以返回 NO
  • 我收回了。我的问题是状态栏下方的黑色背景。添加一个新窗口将状态栏颜色更改为黑色,看起来好像它消失了。实施preferredStatusBarStyle 解决了这个问题。
猜你喜欢
  • 2015-04-21
  • 1970-01-01
  • 2014-11-14
  • 2020-02-20
  • 1970-01-01
  • 2017-03-20
  • 1970-01-01
  • 2014-11-26
  • 1970-01-01
相关资源
最近更新 更多