我遇到状态栏问题&导航栏。默认情况下,UINavigationController
的导航栏会延伸到状态栏后面并为其着色(左侧屏幕截图)。
使用搜索栏时,我隐藏了导航栏。这会导致未着色的状态栏。 Apple的Mail应用程序没有此问题。
除了创建一个具有背景颜色的单独UIView并将其放在状态栏后面之外,还有其他解决方案吗?
以下是我想要完成的事情:
答案 0 :(得分:0)
当您隐藏导航栏时,为什么不更新UIStatusBar的外观。
在NavigationController中实现此功能:
-(UIStatusBarStyle)preferredStatusBarStyle{
//Have an if statement to determine which UIStatusBarStyle to return, i.e if the navigationBar is hidden
return UIStatusBarStyleLightContent;
}
使用此隐藏导航栏时调用它:
[self setNeedsStatusBarAppearanceUpdate];
另一个选择是执行以下操作:
在info pList文件中将UIViewControllerBasedStatusBarAppearance设置为NO。 然后你可以打电话
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
答案 1 :(得分:0)
在您的IB(或以编程方式)中,尝试检查顶部栏的模拟指标:您应该将其设置为从不透明到半透明(导航栏)。
注意:默认情况下,导航栏是半透明的。您应该获得免费的"彩色" **状态栏。
**由UISearchBar.appearance().barTintColor