协慌网

登录 贡献 社区

如何在 iOS 中更改状态栏文本颜色

我的应用程序背景较暗,但在 iOS 7 中,状态栏变得透明。所以我看不到任何东西,只有角落里的绿色电池指示灯。如何将状态栏文本颜色更改为白色,就像在主屏幕上一样?

答案

  1. 在. plist 文件中将UIViewControllerBasedStatusBarAppearance设置为YES

  2. viewDidLoad做一个[self setNeedsStatusBarAppearanceUpdate];

  3. 添加以下方法:

    - (UIStatusBarStyle)preferredStatusBarStyle
    { 
        return UIStatusBarStyleLightContent; 
    }

注意 :这不适用于UINavigationController内的控制器,请参阅下面的 Tyson 评论 :)

Swift 3 - 这将在UINavigationController使用控制器。在控制器中添加此代码。

// Preferred status bar style lightContent to use on dark background.
// Swift 3
override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

或者,您可以选择退出基于视图控制器的状态栏外观:

  1. Info.plist中将View controller-based status bar appearanceNO
  2. 调用[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

注意:此方法已在 iOS9 中弃用。而是在 UIViewController 上使用preferredStatusBarStyle 。 (参见Apple Developer Library

您无需编写任何代码即可完成此操作!
执行以下操作以使状态栏文本颜色在整个应用程序中变为白色

在你的项目 plist文件:

  • 状态栏样式: Transparent black style (alpha of 0.5)
  • 查看基于控制器的状态栏外观: NO
  • 状态栏最初隐藏: NO