iOS7 StatusBar 使用小結

iOS7 中的StatusBar和以前版本的相比發生了很大變化,在iOS7下對statusbar的使用須要全新的方法,如今就總結如下statusbar的方法: app

  • 樣式
  • 顯示和隱藏
  • 動畫效果
  • 默認無StatusBar

1. 樣式

StatusBar有兩種樣式: ide

  •  UIStatusBarStyleDefault :

  • UIStatusBarStyleLightContent

要改變StatusBar的顯示樣式須要在UIViewController中重載: 動畫

- (UIStatusBarStyle)preferredStatusBarStyle
{
    return UIStatusBarStyleLightContent;
}



這個方法不能直接調用,在須要改變樣式的地方調用:[self setNeedsStatusBarAppearanceUpdate]

示例:

- (void)viewWillAppear:(BOOL)animated
{
    [self setNeedsStatusBarAppearanceUpdate];
}



2. 顯示和隱藏

顯示和隱藏StatusBar只要在UIViewController中重載: spa

- (BOOL)prefersStatusBarHidden
{
    return YES;
}



一樣式改變同樣須要調用 [self setNeedsStatusBarAppearanceUpdate] 方法 code

3. 動畫效果

如今有兩種動畫效果:UIStatusBarAnimationFade ,UIStatusBarAnimationSlide.從他們的名字能夠得知他的具體是什麼眼的效果。 實現動畫須要重載: animation

- (UIStatusBarAnimation )preferredStatusBarUpdateAnimation
{
    return UIStatusBarAnimationSlide;
}



可是重載這個方法後,並無動畫效果。這時,咱們須要把 [self setNeedsStatusBarAppearanceUpdate] 放在動畫block中執行:

[UIView animateWithDuration:0.3
                 animations:^{
                    [self setNeedsStatusBarAppearanceUpdate];
}];



這樣動畫效果就出現了。

4. 默認無StatusBar

有一些應用默認就沒有Statusbar如: 產品

這樣的應用很醜,總感受缺點什麼,可是有些產品經理就是喜歡。 it

要實現這種效果,最須要在項目配置plist文件總將Status bar is initially hidden 字段設置爲 YES, 添加View controller-based status bar appearance 字段, 並將值設置爲 NO: io

其餘

有一些體統提供的組建,如 發送郵件MFMailComposeViewController,沒法更改Statabar樣式,就是使用它的子類都沒法實現,若是有朋友知道如何實現,必定要告訴小弟, 不勝感激 class

相關文章
相關標籤/搜索