61

我无法更改 iOS 7 SDK 状态栏中的文本颜色。目前它是黑色的,我希望它对于故事板中的所有视图控制器都是白色的。

我在 StackOverflow 上看到过几个问题,例如THISTHISTHIS ,但它们并没有太大帮助。也可能是因为我无法在我的 plist 文件中找到 UIViewControllerBasedStatusBarAppearance 为 YES 。

谁能告诉我为情节提要中的所有视图控制器将状态栏文本颜色设置为白色的正确方法?提前致谢!

4

4 回答 4

199

让我给你一个完整的答案。更改状态栏文本颜色非常容易,但在 iOS 7 中它有点令人困惑,特别是对于新手。

如果您试图通过选择视图控制器并转到右侧的模拟度量来将 StoryBoard 中的颜色从黑色更改为白色,它将不起作用,我不知道为什么。它应该通过这样的改变来工作,但无论如何。

其次,您不会在 plist 中找到 UIViewControllerBasedStatusBarAppearance 属性,但默认情况下它不存在。您必须通过单击 + 按钮自行添加,然后将其设置为 NO。

ios 7 状态栏文字颜色

最后,您必须转到 AppDelegate.m 文件并在 didFinishLaunchingWithOptions 方法中添加以下内容,添加以下行:

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

这会将所有视图控制器的颜色更改为白色。希望这可以帮助!

于 2013-09-28T09:33:10.260 回答
43

如果您正在寻找UIViewControllerBasedStatusBarAppearance,则需要单击将鼠标悬停在 plist 文件中的根元素上时出现的小加号。

plist 文件

完成此操作后,将出现一个新行 - 从下拉列表中选择“查看基于控制器的状态栏外观”并设置NO为其值。(该友好名称在内部声明为UIViewControllerBasedStatusBarAppearance

接下来,在您的应用程序委托中调用以下方法应将所有视图控制器的状态栏颜色设置为白色:

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
于 2013-09-28T08:52:32.187 回答
24

在 plist 中设置UIViewControllerBasedStatusBarAppearance为 YES

viewDidLoad做一个[self setNeedsStatusBarAppearanceUpdate];

添加以下方法:

-(UIStatusBarStyle)preferredStatusBarStyle{ 
    return UIStatusBarStyleLightContent; 
}
于 2014-01-21T17:29:28.597 回答
16

它是YES默认的,所以你不会看到它。您需要添加

UIViewControllerBasedStatusBarAppearance

到您的 plist 并将其设置为NO.

然后你可以打电话

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
于 2013-09-28T08:49:44.487 回答