我的应用程序背景是黑色的,但在iOS 7中,状态栏变成了透明的。所以我什么也看不见,只有角落里的绿色电池指示灯。如何将状态栏文本颜色改为白色,就像在主屏幕上一样?


当前回答

简单地在应用程序委托:

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

在Swift 5中,遵循以下步骤:

在Info.plist中添加key UIViewControllerBasedStatusBarAppearance并将value设置为false 添加键UIStatusBarStyle和设置值UIStatusBarStyleLightContent

其他回答

简单地调用

[[UINavigationBar appearance] setBarStyle:UIBarStyleBlack];

-(BOOL)application:(UIApplication *)application 
           didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
}

我的AppDelegate的方法在iOS7中非常适合我。

在Swift 3非常简单,只需2步。 去你的信息。将基于视图控制器的状态栏外观更改为“NO”。 然后在Appdelegate中在didfinishlaunchingwithoptions方法中添加这一行

  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        UIApplication.shared.statusBarStyle = .lightContent
        return true
    }

这在iOS9中已经被弃用,现在你应该在rootviewcontroller中重写这个属性

这样做在iOS 9中已经被弃用,应该在rootviewcontroller上这样做

override var preferredStatusBarStyle: UIStatusBarStyle {
        return .lightContent
 }

如果你想用Swift得到同样的结果,你可以在你的AppDelegate.swift文件中使用下面的代码:

UINavigationBar.appearance().barStyle = .BlackTranslucent

你的状态栏的文本将是白色的:-)!

非常简单的方法来改变状态栏的颜色。 创建navigation Controller的子类。

在view didload方法中编写以下代码。 在所有视图控制器中执行此代码

self.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName :
                                                                        [UIColor whiteColor],
                                               NSFontAttributeName:[UIFont boldSystemFontOfSize:19]};

不需要做一些额外的,只是写这段代码在你的viewController和获得状态栏颜色白色

- (UIStatusBarStyle)preferredStatusBarStyle{return UIStatusBarStyleLightContent;}