背景说明: 状态栏可分为前后两部分,前景部分包括电量,时间,网络等,后景色是下面的底色,状态栏的高度是20像素
下面介绍更改状态栏的三种方法:
1.在状态栏的位置添加一个view,设置view的颜色,这个颜色就可以作为状态栏的底色
UIView *barView = [[UIView alloc] initWithFrame:CGRectMake(0, -20, self.view.frame.size.width, 20)];
barView.backgroundColor = [UIColor blueColor];
[self.navigationController.navigationBar addSubview:barView];
2.设置Navigation bar的barstyle会影响status bar的字的颜色和背景色(但是只有黑白两种)
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
3.自定义一个UINavigationController的子类,在子类中重写这个方法:
- (UIStatusBarStyle)preferredStatusBarStyle
{
UIViewController* topVC = self.topViewController;
return [topVC preferredStatusBarStyle];
}
在ViewController中重写下面这个方法:
-(UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
在viewDidLoad中调用:[self setNeedsStatusBarAppearanceUpdate];
注:setNeedsStatusBarAppearanceUpdate 只会调用 navigationController 中的 preferredStatusBarStyle 方法