隱藏狀態欄有兩種方式
第一種:只在當前控制器隱藏狀態欄
- (BOOL)prefersStatusBarHidden
{
return YES;
}
第二種:整個項目隱藏狀態欄
在info.plist上添加一項:Status bar is initially hidden,value爲YES;
在info.plist上再添加一項:View controller-based status bar appearance,value爲NO;
這樣就整個項目的控制器狀態欄都隱藏了
狀態欄字體有系統兩種樣式
UIStatusBarStyleDefault 默認字體是黑色
UIStatusBarStyleLightContent 字體是白色
通過改變狀態欄樣式可以更改字體顏色
-(UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
當我們把當前控制器加載到自定義的導航控制器 調用上面的方法更改狀態欄樣式沒有效果
此時我們需要在自定義的導航控制器中 加上一段代碼如下:
- (UIStatusBarStyle)preferredStatusBarStyle {
UIViewController *topVC = self.topViewController;
return [topVC preferredStatusBarStyle];
}
再在相應的控制器裏調用
-(UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
這樣就可以更改狀態欄樣式
動態隱藏顯示狀態欄
定義一個BOOL值記錄 是否隱藏狀態欄
- (BOOL)prefersStatusBarHidden
{
return self.isHidden;
}
比如有些界面滑動的時候 滑到一定距離隱藏狀態欄
在滑到指定的位置
self.isHidden = YES;
[UIView animateWithDuration:0.25 animations:^{
[self setNeedsStatusBarAppearanceUpdate];
}];
[self setNeedsStatusBarAppearanceUpdate];
此方法是重置狀態欄