UINavigationBar 隐藏在 statusBar [重复]

Posted

技术标签:

【中文标题】UINavigationBar 隐藏在 statusBar [重复]【英文标题】:UINavigationBar hides under statusBar [duplicate] 【发布时间】:2016-10-22 15:18:08 【问题描述】:

在某些UIViewControllerUINavigationBar 隐藏在状态栏下。这是截图:

但是当我将 View controller-based status bar appearance 更改为 YES 时,UINavigationBar 看起来很完美。这是截图:

但在这种情况下,status bartextColor 会从白色变为黑色。我想要状态栏的白色文本颜色,并从状态栏中取消隐藏UINavigationBar。有什么办法可以解决(状态栏为白色并取消隐藏UINavigationBar)。

提前致谢!

【问题讨论】:

是的,但它不起作用。 :( 如果你拖放导航栏然后对其应用约束,那么它的约束问题..给topConstriant添加一些空间 @SahebSingh 我没有在任何 UIViewController 中使用约束。我只是从现有代码中解决问题。 @MuhammadAdnan 请检查我更新的问题。我试过这个:***.com/questions/19105766/… 但不工作。 ***.com/questions/33103831/… 用于 ios 9 特定 【参考方案1】:

您可以随时在 viewWillAppear(animated: Bool) 中手动设置导航栏的原点

self.navigationController?.navigationBar.frame.origin = CGPoint(0, 20)

【讨论】:

【参考方案2】:

将这些密钥添加到您的项目Info.plist,您应该没问题。

<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleLightContent</string>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>

【讨论】:

【参考方案3】:

将此代码添加到您的 Appdelegate 和 info.plist 中

在 info.Plist 中

View controller-based status bar appearance to NO

在 Appdelegate 中

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

【讨论】:

已添加但无法使用。 将基于视图控制器的状态栏外观设置为 NO 如果我将 View controller-based status bar appearance 设置为 NO 然后 UINavigationBar 隐藏在 UIStatusBar 下

以上是关于UINavigationBar 隐藏在 statusBar [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 UINavigationBar 中隐藏或禁用 UIBarButtonItem

UINavigationBar 在 PushViewController 上隐藏 UIBarButtons

如何从 UINavigationController 隐藏 UINavigationBar?

UITableView 中的顶部单元格隐藏在 UINavigationBar 后面

如何隐藏 UINavigationBar

iOS 7 UINavigationBar 在视图转换时未隐藏