- 隱藏啟動(dòng)畫面(LaunchScreen)的狀態(tài)欄(UIStatusBar)
- 設(shè)置UIStatusBar狀態(tài)欄顏色(UIStatusBarStyle)
- 設(shè)置UIStatusBar狀態(tài)欄隱藏
- 設(shè)置某個(gè)頁面狀態(tài)欄的顏色
- 狀態(tài)欄的動(dòng)畫UIStatusBarAnimation
1. 隱藏啟動(dòng)畫面(LaunchScreen)的狀態(tài)欄(UIStatusBar)

2. 設(shè)置UIStatusBar狀態(tài)欄顏色(UIStatusBarStyle)
- 方法一:
在根視圖控制器實(shí)現(xiàn)方法
-(UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
- 方法二:
(1) 如圖設(shè)置Status Bar Style

(2) info列表里添加View controller-based status bar appearance 并設(shè)置為NO

注意:
該方法設(shè)置View controller-based status bar appearance為NO后,
無法使用代碼的方式改變狀態(tài)欄顏色和是否隱藏
不能設(shè)置啟動(dòng)畫面隱藏狀態(tài)欄,否則整個(gè)項(xiàng)目的狀態(tài)欄都隱藏了
3. UIStatusBar狀態(tài)欄隱藏
方法一:
在根視圖控制器實(shí)現(xiàn)方法
-(BOOL)prefersStatusBarHidden {
return YES;
}
方法二:
(1)

(2) info列表里添加View controller-based status bar appearance 并設(shè)置為NO

注意:
該方法設(shè)置View controller-based status bar appearance為NO后,相關(guān)代碼設(shè)置不再起作用
4. 設(shè)置某個(gè)頁面狀態(tài)欄的顏色
(1)在根視圖控制器實(shí)現(xiàn)方法:
-(UIViewController *)childViewControllerForStatusBarStyle {
return self.topViewController;
}
(2)在某個(gè)頁面實(shí)現(xiàn)方法:
-(UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
5. 狀態(tài)欄的動(dòng)畫UIStatusBarAnimation
需要將setNeedsStatusBarAppearanceUpdate方法放在UIView動(dòng)畫里
實(shí)現(xiàn)方法:
-(UIStatusBarAnimation)preferredStatusBarUpdateAnimation {
return UIStatusBarAnimationFade;
}
動(dòng)畫代碼:
[UIView animateWithDuration:2.0 animations:^{
[self setNeedsStatusBarAppearanceUpdate];
}];
總結(jié)
1.優(yōu)先首選的狀態(tài)欄樣式
-(UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
2.覆蓋上面優(yōu)先首選的方法
-(UIViewController *)childViewControllerForStatusBarStyle {
return self.topViewController;
}
實(shí)現(xiàn)此方法,將會(huì)調(diào)用 self.topViewController的preferredStatusBarStyle方法
視圖控制器容器基本就是UINavigationController和UITabBarController
而發(fā)現(xiàn)在UITabBarController實(shí)現(xiàn)上邊兩個(gè)方法不起作用
所以一般是在UINavigationController里實(shí)現(xiàn)2方法,所以此處返回.topViewController
3.隱藏和覆蓋隱藏(指定調(diào)用某個(gè)頁面的隱藏方法)
prefersStatusBarHidden
方法和childViewControllerForStatusBarHidden
同上1.2.,一個(gè)是樣式,一個(gè)是隱藏
4.動(dòng)畫風(fēng)格
在preferredStatusBarUpdateAnimation
方法里指定動(dòng)畫風(fēng)格
5.刷新狀態(tài)欄和動(dòng)畫刷新狀態(tài)欄
調(diào)用- setNeedsStatusBarAppearanceUpdate
方法刷新
將此方法放在動(dòng)畫代碼里即有動(dòng)畫效果
Demo請點(diǎn)擊:
end~愿您有所收獲