轉(zhuǎn)載鏈接:http://www.itdecent.cn/p/32d0048ff2bb
一、樣式
1. StatusBar有兩種樣式: (默認(rèn)高度為20)
UIStatusBarStyleDefault :

UIStatusBarStyleDefault.png
UIStatusBarStyleLightContent

UIStatusBarStyleLightContent.png
2. 改變狀態(tài)欄文字顏色方法:
方法1:直接設(shè)置storyboard的controller設(shè)置:

storyboard設(shè)置.png
方法2:代碼設(shè)置,在UIViewController中重載: (個(gè)別頁面改變的話,建議用這種方法!)
-(UIStatusBarStyle)preferredStatusBarStyle{returnUIStatusBarStyleLightContent;}
這個(gè)方法不能直接調(diào)用,在需要改變樣式的地方調(diào)用:
**[self setNeedsStatusBarAppearanceUpdate] **
示例:
-(void)viewWillAppear:(BOOL)animated{[selfsetNeedsStatusBarAppearanceUpdate];}
方法3:整個(gè)應(yīng)用的狀態(tài)欄顏色統(tǒng)一設(shè)置
在info.plist中 View controller-based status bar appearance 設(shè)為NO(不設(shè)置時(shí)默認(rèn)為YES),利用[UIApplication sharedApplication].statusBarStyle(優(yōu)先)調(diào)節(jié)。

info.plist.png
在AppDelegate.m中:(也可根據(jù)不同view個(gè)別添加到不同位置調(diào)節(jié))
[UIApplication sharedApplication].statusBarStyle=UIStatusBarStyleLightContent;//? 或:[UIApplication sharedApplication].statusBarStyle=UIStatusBarStyleDefault;//? 或(帶動(dòng)畫效果,一般在willappear/willdisappear里設(shè)置)[[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleDefault animated:YES];
方法4:如果有navigationbar,則可 設(shè)置navigationbarstyle去調(diào)節(jié)statusbar的顏色
通過storyboard調(diào)節(jié)navigationBarStyle
或代碼:
[viewController.navigationBar setBarStyle:UIBarStyleBlack];
二、StatusBar的顯示和隱藏
1. 個(gè)別頁面顯示和隱藏
推薦方法:
顯示和隱藏StatusBar只要在UIViewController中重載:
-(BOOL)prefersStatusBarHidden{returnYES;}
同樣式改變一樣需要調(diào)用**[self setNeedsStatusBarAppearanceUpdate] **方法.
補(bǔ)充:
如果iOS6和iOS7都支持,則處理方式如下:
1)如果info.plist中 View controller-based status bar appearance 設(shè)為NO。
則在iOS6和iOS7都是用下面的方法隱藏status bar。
[[UIApplication sharedApplication]setStatusBarHidden:YESwithAnimation:NO];
2)如果View controller-based status bar appearance 設(shè)為YES。(默認(rèn))
則需要判斷當(dāng)前是iOS6還是iOS7。
如果是iOS6,則還通過sharedApplication隱藏。
如果是iOS7,則用setNeedsStatusBarAppearanceUpdate的方式來隱藏status bar。
2. 全局默認(rèn)無StatusBar
需要在項(xiàng)目配置info.plist文件總將Status bar is initially hidden 字段設(shè)置為 YES;并添加View controller-based status bar appearance 字段, 并將值設(shè)置為 NO:

info.plist.png
也可和上面一樣設(shè)置來控制StatusBar全局隱藏:
[[UIApplication sharedApplication]setStatusBarHidden:YES];
三、動(dòng)畫效果
現(xiàn)在有兩種動(dòng)畫效果:
UIStatusBarAnimationFade
UIStatusBarAnimationSlide.
從他們的名字可以得知他的具體是什么樣的效果。
實(shí)現(xiàn)動(dòng)畫需要重載:
-(UIStatusBarAnimation)preferredStatusBarUpdateAnimation{returnUIStatusBarAnimationSlide;}
但是重載這個(gè)方法后,并沒有動(dòng)畫效果。
這時(shí),我們需要把[self setNeedsStatusBarAppearanceUpdate] 放在動(dòng)畫block中執(zhí)行:
[UIView animateWithDuration:0.3animations:^{[selfsetNeedsStatusBarAppearanceUpdate];}];
這樣動(dòng)畫效果就出現(xiàn)了。
ps: 有時(shí)有特殊的要求,需要對StatusBar的背景色進(jìn)行改變,則可參考下面簡書的一篇文章,感覺不錯(cuò):