一涝滴、樣式
1. StatusBar有兩種樣式: (默認(rèn)高度為20)
-
UIStatusBarStyleDefault :
-
UIStatusBarStyleLightContent
2. 改變狀態(tài)欄文字顏色方法:
方法1:直接設(shè)置storyboard的controller設(shè)置:
方法2:代碼設(shè)置,在UIViewController中重載: (個別頁面改變的話,建議用這種方法!)
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
這個方法不能直接調(diào)用剥哑,在需要改變樣式的地方調(diào)用:
**[self setNeedsStatusBarAppearanceUpdate] **
示例:
- (void)viewWillAppear:(BOOL)animated
{
[self setNeedsStatusBarAppearanceUpdate];
}
方法3:整個應(yīng)用的狀態(tài)欄顏色統(tǒng)一設(shè)置
在info.plist中 View controller-based status bar appearance 設(shè)為NO(不設(shè)置時默認(rèn)為YES)师枣,利用[UIApplication sharedApplication].statusBarStyle(優(yōu)先)調(diào)節(jié)恃逻。
在AppDelegate.m中:(也可根據(jù)不同view個別添加到不同位置調(diào)節(jié))
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
// 或:
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
// 或(帶動畫效果蕊程,一般在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. 個別頁面顯示和隱藏
推薦方法:
顯示和隱藏StatusBar只要在UIViewController中重載:
- (BOOL)prefersStatusBarHidden
{
return YES;
}
同樣式改變一樣需要調(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:YES withAnimation: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:
也可和上面一樣設(shè)置來控制StatusBar全局隱藏:
[[UIApplication sharedApplication] setStatusBarHidden:YES];
三、動畫效果
現(xiàn)在有兩種動畫效果:
- UIStatusBarAnimationFade
- UIStatusBarAnimationSlide.
從他們的名字可以得知他的具體是什么樣的效果财饥。
實(shí)現(xiàn)動畫需要重載:
- (UIStatusBarAnimation )preferredStatusBarUpdateAnimation
{
return UIStatusBarAnimationSlide;
}
但是重載這個方法后换吧,并沒有動畫效果。
這時钥星,我們需要把[self setNeedsStatusBarAppearanceUpdate] 放在動畫block中執(zhí)行:
[UIView animateWithDuration:0.3
animations:^{
[self setNeedsStatusBarAppearanceUpdate];
}];
這樣動畫效果就出現(xiàn)了沾瓦。
ps: 有時有特殊的要求,需要對StatusBar的背景色進(jìn)行改變谦炒,則可參考下面簡書的一篇文章贯莺,感覺不錯:
ios 狀態(tài)欄statusBar的背景顏色
其實(shí)這些是一開始學(xué)iOS所記下的筆記,很散亂宁改,就打算拿出來整理下缕探,分享分享,有什么疑問隨時留言討論下哈~