一、將單個頁面的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;