iOS8在不使用UINavigationBar的情况下更改状态栏颜色

时间:2015-05-24 23:28:39

标签: ios colors uinavigationbar tint

我想更改状态栏颜色,而不必显示UINavigationBar。

setBarTintColor works fine if 
[self.navigationController setNavigationBarHidden:NO animated:NO];

但是我使用自定义控件意味着我必须设置

[self.navigationController setNavigationBarHidden:YES animated:NO];

然后表示状态栏颜色为白色。

如何在不显示UINavigationBar的情况下更改状态栏颜色?

1 个答案:

答案 0 :(得分:1)

如果我理解你的问题 以下是更改每个UIStatusBarStyle

UIViewController的方法

所以你需要在app-info.plist

中添加这些行

1 -

<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleBlackTranslucent</string>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>

并在viewController内-(void)viewDidLoad; 请致电以下

2 -

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

然后声明此选择器

3 -

- (UIStatusBarStyle)preferredStatusBarStyle {
    return UIStatusBarStyleLightContent;
}

4-这里是UIStatusBarStyle

的列表
typedef NS_ENUM(NSInteger, UIStatusBarStyle) {
    UIStatusBarStyleDefault                                     = 0, // Dark content, for use on light backgrounds
    UIStatusBarStyleLightContent     NS_ENUM_AVAILABLE_IOS(7_0) = 1, // Light content, for use on dark backgrounds

    UIStatusBarStyleBlackTranslucent NS_ENUM_DEPRECATED_IOS(2_0, 7_0, "Use UIStatusBarStyleLightContent") = 1,
    UIStatusBarStyleBlackOpaque      NS_ENUM_DEPRECATED_IOS(2_0, 7_0, "Use UIStatusBarStyleLightContent") = 2,
};

如果你在谈论改变状态栏的背景颜色,我想你必须在这里看到答案https://stackoverflow.com/a/21044718/1447546