导航栏在状态栏下隐藏

5
在某些 UIViewController 中,UINavigationBar 会隐藏在状态栏下面。以下是截图:

<code>UINavigationBar</code> under StatusBar

但是当我将 View controller-based status bar appearance 更改为 YES 时,UINavigationBar 就变得完美了。以下是截图:

black text in <code>UIStatusBar</code>

但在这种情况下,status bartextColor 从白色变成黑色。我想要一个白色的状态栏文本颜色并且取消隐藏 UINavigationBar。是否有解决这个问题的办法(白色的状态栏和取消隐藏 UINavigationBar)。

提前感谢!


是的,但它没有起作用。 :( - Sudha Tiwari
@MuhammadAdnan 请查看我的更新问题。我已经尝试过这个:https://dev59.com/v2Ik5IYBdhLWcg3wn_b1 但是没有起作用。 - Sudha Tiwari
针对iOS 9,使用Objective-C更改状态栏文本颜色为浅色的方法:https://dev59.com/0FwY5IYBdhLWcg3wCD6W - Muhammad Adnan
@MuhammadAdnan 仍然一样。 - Sudha Tiwari
[[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleLightContent];放在viewDidAppear中,然后再试一次... - Fahim Parkar
显示剩余3条评论
3个回答

2

您可以在viewWillAppear(animated: Bool)方法中手动设置导航栏的起点。

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

1

将这些键添加到您的项目的Info.plist中,然后您就可以了。

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

0
将以下代码添加到您的Appdelegate和info.plist文件中。
在info.plist文件中:
View controller-based status bar appearance to NO

在Appdelegate中

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

已经添加但是没有起作用。 - Sudha Tiwari
将视图控制器基于状态栏的外观设置为NO。 - Jugal K Balara
如果我将“视图控制器基础状态栏外观”设置为NO,那么UINavigationBar会隐藏在UIStatusBar下面。 - Sudha Tiwari

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接