我想更改状态栏颜色,而不必显示UINavigationBar。
setBarTintColor works fine if
[self.navigationController setNavigationBarHidden:NO animated:NO];
但是我使用自定义控件意味着我必须设置
[self.navigationController setNavigationBarHidden:YES animated:NO];
然后表示状态栏颜色为白色。
如何在不显示UINavigationBar的情况下更改状态栏颜色?
答案 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