【问题标题】:Fake Status Bar Color when Navigation Bar is hidden隐藏导航栏时的假状态栏颜色
【发布时间】:2015-03-10 18:45:08
【问题描述】:

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

当使用搜索栏时,我隐藏了导航栏。这会产生一个未着色的状态栏。 Apple 的邮件应用没有这个问题。

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

这是我想要完成的:

【问题讨论】:

标签: ios uikit


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    在您的 IB(或以编程方式)中,尝试检查顶部栏的模拟指标:您应该将其从不透明设置为半透明(导航栏)。

    注意:默认情况下,导航栏是半透明的。你应该得到 free 的“彩色”** 状态栏。

    ** 由UISearchBar.appearance().barTintColor 定义

    【讨论】:

      猜你喜欢
      • 2015-08-03
      • 2015-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-02
      • 1970-01-01
      • 2016-03-29
      • 1970-01-01
      相关资源
      最近更新 更多