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;
相關文章
相關標籤/搜索