iOS StatusBar状态栏文字颜色更改

一、将单个页面的StatusBar文字颜色改成白色,动态更改也能够在这里设置app

-(UIStatusBarStyle)preferredStatusBarStyle {
    return UIStatusBarStyleLightContent;
}

二、将全部页面的StatusBar文字颜色改成白色spa

  plist文件中View controller-based status bar appearance 设置为 NOcode

  在这种状况下,将单个页面的文字颜色更改成黑色blog

-(void)viewWillAppear:(BOOL)animated {
    [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
}

-(void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
}

 三、scrollView滑动更改StatusBar的文字颜色it

-(void)scrollViewDidScroll:(UIScrollView *)scrollView {
    _offsetY = scrollView.contentOffset.y;
    [self setNeedsStatusBarAppearanceUpdate];   //更新statusBar颜色,调用preferredStatusBarStyle
}

- (UIStatusBarStyle)preferredStatusBarStyle {
    if (_offsetY <= 136) {
        return UIStatusBarStyleLightContent;
    }
    return UIStatusBarStyleDefault;
}

 四、当以UINavigationController来作容控制器,并且导航栏没有隐藏的状况下,io

  preferredStatusBarStyle方法是没法改变StatusBar的颜色的,class

  给UINavigationController写一个类扩展(Catogory)就能够使用上面方法了扩展

@implementation UINavigationController (UIKitAddition)

-(UIViewController *)childViewControllerForStatusBarStyle {
    return self.visibleViewController;
}

-(UIViewController *)childViewControllerForStatusBarHidden {
    return self.visibleViewController;
}

@end

五、以UINavigationController来作容控制器的时候不想写类扩展,也能够用如下方法sed

//白色
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
//黑色
self.navigationController.navigationBar.barStyle = UIBarStyleDefault;
相关文章
相关标签/搜索