iPhone X - 隐藏状态栏向上推动导航栏

Roi*_*lia 24 statusbar uinavigationbar uinavigationcontroller ios iphone-x

我正在使用Xcode模拟器测试iPhone X的行为.由于一些奇怪的原因,如果我隐藏状态栏,导航栏向上推动导致标题完全消失并切断左右按钮.这只发生在iPhone X上.

插图:

在此输入图像描述

如何隐藏状态栏并将导航栏保持在可见位置?

更新:

你说服的示例项目:

https://drive.google.com/file/d/0B5qJARV-Oc9ra1hvZkpXZm9lRUE/view?usp=sharing

nat*_*ter 13

一种解决方案是将导航控制器嵌入容器视图控制器内,该控制器被适当地约束到安全区域.

故事板设置

只需创建另一个视图控制器并从对象库中拖动"容器视图".此视图具有安全区域的顶部,底部,前导和尾随约束,所有约束均等于0.如果您从容器视图控制拖动到导航控制器,您将获得设置"嵌入segue"的选项"它将选定的视图控制器嵌入为子视图控制器.

我将状态栏设置为隐藏在我创建的新视图控制器上,并且工作正常.

iPhone X上工作布局的屏幕截图

这感觉就像是UINavigationBar应该自动处理的东西,但是这种解决方法似乎应该可以很好地工作.

另请注意:如果更改导航栏的颜色,则还需要在容器视图上方创建另一个视图,并更改其颜色以匹配导航栏的颜色.

  • 1)我使用`Command` -`Shift`-`4`截取模拟器的屏幕截图,然后按下'space`并点击模拟器窗口.您可能必须选中Window> Show Device Bezels.2)我认为这是一个不常见的用例.通常,如果您使用的是导航栏,则可以看到状态栏可见.我不认为这会很快修复,因为它打破了常见的iOS惯例. (2认同)