iOS 更改状态栏的颜色

背景说明:  状态栏可分为前后两部分,前景部分包括电量,时间,网络等,后景色是下面的底色,状态栏的高度是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 方法


 

     

posted @ 2016-09-18 16:05  花落冉溪何处归  阅读(1526)  评论(0编辑  收藏  举报