UINavigationBar 隐藏在 statusBar [重复]
Posted
技术标签:
【中文标题】UINavigationBar 隐藏在 statusBar [重复]【英文标题】:UINavigationBar hides under statusBar [duplicate] 【发布时间】:2016-10-22 15:18:08 【问题描述】:在某些UIViewController
,UINavigationBar
隐藏在状态栏下。这是截图:
但是当我将 View controller-based status bar appearance
更改为 YES
时,UINavigationBar
看起来很完美。这是截图:
但在这种情况下,status bar
的 textColor
会从白色变为黑色。我想要状态栏的白色文本颜色,并从状态栏中取消隐藏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?