一、設定狀态欄顯示和隐藏
1、通過 Info.plist 檔案增加字段,控制狀态欄全局顯示和隐藏
- 在 Info.plist 檔案中增加字段 Status bar is initially hidden 設定為 YES ,那麼 app 在 LaunchScreen 頁面隐藏狀态欄
- 在 Info.plist 檔案增加字段 View controller-based status bar appearance 設定為 YES,那麼app預設所有頁面都會顯示狀态欄
2、通過代碼,控制狀态欄全局顯示和隐藏
- 在 Info.plist 檔案 View controller-based status bar appearance 設定為 NO時,代碼設定狀态欄才會起作用。
- 在 AppDelegate.m 中添加代碼 [[UIApplication sharedApplication] setStatusBarHidden:NO];
3、通過代碼,控制狀态欄局部顯示和隐藏
- 在 Info.plist 檔案 View controller-based status bar appearance 設定為 YES
- 在需要隐藏狀态欄的VC中重寫寫法 - (BOOL)prefersStatusBarHidden { return YES;},傳回YES
二、設定狀态欄顔色
1、全局文字顔色:在 Info.plist 增加key值 Status bar style,value可以設定 UIStatusBarStyleDefault (預設黑色)和 UIStatusBarStyleLightContent (白色)。
2、全局文字顔色:在 Info.plist 檔案 View controller-based status bar appearance 設定為 NO時,且在 AppDelegate.m 中添加2行代碼 [[UIApplication sharedApplication] setStatusBarHidden:NO]; [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; 即可!注意:此處 Info.plist中添加的key值對應的value必須為NO,若為YES,則代碼不起作用。
3、局部文字顔色:此處分2種不同情況
首先設定,在 Info.plist 檔案 View controller-based status bar appearance 設定為 YES
a. ViewController 不嵌套在 UINavigationController 中,需要設定以下
重寫 UIViewController 方法
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleDefault;
}
b. ViewController 為 UINavigationController 的rootVC,需要設定以下
繼承 UINavigationController 寫一個子類,然後重寫方法:
- (UIStatusBarStyle)preferredStatusBarStyle {
return self.topViewController.preferredStatusBarStyle;
}
關于以上狀态欄的顯示和隐藏、文字或背景顔色均為親測,若存在問題,麻煩留言@我!