我遇到状态栏和导航栏的问题.默认情况下,导航栏UINavigationController延伸到状态栏后面并为其着色(左侧屏幕截图).
使用搜索栏时,我隐藏了导航栏.这会导致未着色的状态栏.Apple的Mail应用程序没有此问题.
除了创建一个具有背景颜色的单独UIView并将其放在状态栏后面之外,还有其他解决方案吗?

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

当您隐藏导航栏时,为什么不同时更新 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)