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

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

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

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

提前致谢!

【问题讨论】:

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

标签: ios objective-c uinavigationbar uistatusbar


【解决方案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 下
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      相关资源
      最近更新 更多