ios7 解決方法是在infor.plist中加入key:UIViewControllerBasedStatusBarAppearance 並設置其值爲NO,這樣就告訴系統,status bar不依賴於UIViewController. 這樣就可以通過上面的方法來hiden status bar.
如果是在默認情況下,如果我們要hiden如何辦呢。
只需要實現兩個新方法
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
//UIStatusBarStyleDefault = 0 黑色文字,淺色背景時使用
//UIStatusBarStyleLightContent = 1 白色文字,深色背景時使用
}
- (BOOL)prefersStatusBarHidden
{
return NO; //返回NO表示要顯示,返回YES將hiden
}
上面一個回調方法返回status bar顯示時候的樣式,下面一個回調控制是否顯示status bar.
調用下面的一行代碼將會觸發上面的回調
[self setNeedsStatusBarAppearanceUpdate];
如果想在hiden/show之間有點動畫效果,用下面的代碼即可:
[UIView animateWithDuration:0.5 animations:^{
[self setNeedsStatusBarAppearanceUpdate];
}];
在iOS7下操作status bar.如有問題,歡迎大家指正。