一、将单个页面的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;