標籤:
- 1. 樣式
- 2. 顯示和隱藏
- 3. 動畫效果
- 4. 預設無StatusBar
- 其他
iOS7 中的StatusBar和之前版本的相比發生了很大變化,在iOS7下對statusbar的使用需要全新的方法,現在就總結以下statusbar的方法:
- 樣式
- 顯示和隱藏
- 動畫效果
- 預設無StatusBar
1. 樣式
StatusBar有兩種樣式:
- UIStatusBarStyleDefault :
- UIStatusBarStyleLightContent
要改變StatusBar的顯示樣式需要在UIViewController中重載:
?
| 1234 |
- (UIStatusBarStyle)preferredStatusBarStyle{ return UIStatusBarStyleLightContent;} |
這個方法不能直接調用,在需要改變樣式的地方調用:[self setNeedsStatusBarAppearanceUpdate]
樣本:
?
| 1234 |
- (void)viewWillAppear:(BOOL)animated{ [self setNeedsStatusBarAppearanceUpdate];} |
2. 顯示和隱藏
顯示和隱藏StatusBar只要在UIViewController中重載:
?
| 1234 |
- (BOOL)prefersStatusBarHidden{ return YES;} |
同樣式改變一樣需要調用 [self setNeedsStatusBarAppearanceUpdate] 方法
3. 動畫效果
現在有兩種動畫效果:UIStatusBarAnimationFade ,UIStatusBarAnimationSlide.從他們的名字可以得知他的具體是什麼眼的效果。 實現動畫需要重載:
?
| 1234 |
- (UIStatusBarAnimation )preferredStatusBarUpdateAnimation{ return UIStatusBarAnimationSlide;} |
但是重載這個方法後,並沒有動畫效果。這時,我們需要把 [self setNeedsStatusBarAppearanceUpdate] 放在動畫block中執行:
?
| 1234 |
[UIView animateWithDuration:0.3 animations:^{ [self setNeedsStatusBarAppearanceUpdate];}]; |
這樣動畫效果就出現了。
4. 預設無StatusBar
有一些應用預設就沒有Statusbar如:
這樣的應用很醜,總感覺缺點什麼,但是有些產品經理就是喜歡。
要實現這種效果,最需要在項目配置plist檔案總將Status bar is initially hidden 欄位設定為 YES, 添加View controller-based status bar appearance 欄位, 並將值設定為 NO:
其他
有一些體統提供的組建,如 發送郵件MFMailComposeViewController,無法更改Statabar樣式,就是使用它的子類都無法實現,如果有朋友知道如何?,一定要告訴小弟, 不勝感激
iOS7 StatusBar 使用小結