首页 文章

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

提问于
浏览
21

我隐藏状态栏导航栏向上推动导致 Headers 完全消失并切断左右按钮 . This is happening only on the iPhone X .

插图:

enter image description here

How can I hide the status bar and keep the Navigation Bar at a visible position?

UPDATE:

Sample project for your convince:

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

3 回答

  • 0

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

    storyboard setup

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

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

    screenshot of working layout on iPhone X

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

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

  • 0

    我,对于一个小应用程序,从使用Push转换为Modal segue并添加到我自己的导航栏中 . 我使用Push是因为它看起来很好,并且已经有另一部分的模态,我想以风格为原因进行不同的动画制作 .

    对于较小的应用程序,这可能是最快捷,最简单的解决方案,但我的下一次更新需要使用导航控制器 . 为此我想我会打开状态栏,这对我来说没什么大不了的,并允许它工作 .

  • 13

    我认为您需要在iOS 11中使用"safeAreaLayoutGuide"新更新

    Apple为我们提供了必要的API来解决这款iphone x的不安全区域 . 我们在代码safeAreaLayoutGuide中使用新的safeAreaLayoutGuide锚点来做到这一点

相关问题