iOS StatusBar狀態欄文字顏色更改


1、將單個頁面的StatusBar文字顏色改為白色,動態更改也可以在這里設置

-(UIStatusBarStyle)preferredStatusBarStyle {
    return UIStatusBarStyleLightContent;
}

2、將所有頁面的StatusBar文字顏色改為白色

  plist文件中View controller-based status bar appearance 設置為 NO

  在這種情況下,將單個頁面的文字顏色更改為黑色

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

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

 3、scrollView滑動更改StatusBar的文字顏色

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

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

 4、當以UINavigationController來做容控制器,而且導航欄沒有隱藏的情況下,

  preferredStatusBarStyle方法是無法改變StatusBar的顏色的,

  給UINavigationController寫一個類擴展(Catogory)就可以使用上面方法了

@implementation UINavigationController (UIKitAddition)

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

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

@end

5、以UINavigationController來做容控制器的時候不想寫類擴展,也可以用以下方法

//白色
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
//黑色
self.navigationController.navigationBar.barStyle = UIBarStyleDefault;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM