隐藏导航栏时的假状态栏颜色

Ben*_*n-G 8 uikit ios

我遇到状态栏和导航栏的问题.默认情况下,导航栏UINavigationController延伸到状态栏后面并为其着色(左侧屏幕截图).

使用搜索栏时,我隐藏了导航栏.这会导致未着色的状态栏.Apple的Mail应用程序没有此问题.

除了创建一个具有背景颜色的单独UIView并将其放在状态栏后面之外,还有其他解决方案吗?

显示隐藏和非隐藏导航栏的图像,以及它如何影响状态栏颜色

这就是我想要完成的事情:

在此输入图像描述

chr*_*ram 0

当您隐藏导航栏时,为什么不同时更新 UIStatusBar 的外观。

在您的 NavigationController 中实现此函数:

-(UIStatusBarStyle)preferredStatusBarStyle{
    //Have an if statement to determine which UIStatusBarStyle to return, i.e if the navigationBar is hidden 
    return UIStatusBarStyleLightContent; 
 }
Run Code Online (Sandbox Code Playgroud)

并在隐藏导航栏时调用它:

 [self setNeedsStatusBarAppearanceUpdate];
Run Code Online (Sandbox Code Playgroud)

另一种选择是执行以下操作:

在您的 info pList 文件中将 UIViewControllerBasedStatusBarAppearance 设置为 NO。然后你可以打电话

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
Run Code Online (Sandbox Code Playgroud)