前言:
? ?前景部分:就是指的顯示電池插掂、時間等部分烹植;
? 背景部分:就是顯示黑色或者圖片的背景部分;
1.前景部分:在某一個 ViewController 里面任意切換
1??首先去 Info.plist 里面口四,把 UIViewControllerBasedStatusBarAppearance 設(shè)置為 NO;
2??在你想要改變狀態(tài)欄顏色的任何地方谣旁,寫下面這行代碼;
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;(黑色)
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;(白色)
2.滑動觸發(fā)
iOS-滑動改變狀態(tài)欄顏色_騰訊視頻
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
[self setNeedsStatusBarAppearanceUpdate];
}
-(UIStatusBarStyle)preferredStatusBarStyle {
if (contentOffsety > 44.0) {
return UIStatusBarStyleDefault; //黑色
}else {
return UIStatusBarStyleLightContent; //白色
}
}
3.背景部分
背景部分,簡單來說桥胞,就是背景色恳守;改變方法有兩種:
系統(tǒng)提供的方法
navigationBar的setBarTintColor接口,用此接口可改變statusBar的背景色
注意:一旦你設(shè)置了navigationBar的- (void)setBackgroundImage:(UIImage *)backgroundImage forBarMetrics:(UIBarMetrics)barMetrics接口贩虾,那么上面的setBarTintColor接口就不能改變statusBar的背景色催烘,statusBar的背景色就會變成純黑色。
另辟蹊徑
創(chuàng)建一個UIView缎罢,
設(shè)置該UIView的frame.size 和statusBar大小一樣伊群,
設(shè)置該UIView的frame.origin 為{0,-20},
設(shè)置該UIView的背景色為你希望的statusBar的顏色,
在navigationBar上addSubView該UIView即可屁使。
refer: