- 隐藏启动画面(LaunchScreen)的状态栏(UIStatusBar)
- 设置UIStatusBar状态栏颜色(UIStatusBarStyle)
- 设置UIStatusBar状态栏隐藏
- 设置某个页面状态栏的颜色
- 状态栏的动画UIStatusBarAnimation
1. 隐藏启动画面(LaunchScreen)的状态栏(UIStatusBar)
隐藏启动画面状态栏2. 设置UIStatusBar状态栏颜色(UIStatusBarStyle)
- 方法一:
在根视图控制器实现方法
-(UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
- 方法二:
(1) 如图设置Status Bar Style
(2) info列表里添加View controller-based status bar appearance 并设置为NO
注意:
该方法设置View controller-based status bar appearance为NO后,
无法使用代码的方式改变状态栏颜色和是否隐藏
不能设置启动画面隐藏状态栏,否则整个项目的状态栏都隐藏了
3. UIStatusBar状态栏隐藏
方法一:
在根视图控制器实现方法
-(BOOL)prefersStatusBarHidden {
return YES;
}
方法二:
(1)
(2) info列表里添加View controller-based status bar appearance 并设置为NO
注意:
该方法设置View controller-based status bar appearance为NO后,相关代码设置不再起作用
4. 设置某个页面状态栏的颜色
(1)在根视图控制器实现方法:
-(UIViewController *)childViewControllerForStatusBarStyle {
return self.topViewController;
}
(2)在某个页面实现方法:
-(UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
5. 状态栏的动画UIStatusBarAnimation
需要将setNeedsStatusBarAppearanceUpdate方法放在UIView动画里
实现方法:
-(UIStatusBarAnimation)preferredStatusBarUpdateAnimation {
return UIStatusBarAnimationFade;
}
动画代码:
[UIView animateWithDuration:2.0 animations:^{
[self setNeedsStatusBarAppearanceUpdate];
}];
总结
1.优先首选的状态栏样式
-(UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
2.覆盖上面优先首选的方法
-(UIViewController *)childViewControllerForStatusBarStyle {
return self.topViewController;
}
实现此方法,将会调用 self.topViewController的preferredStatusBarStyle方法
视图控制器容器基本就是UINavigationController和UITabBarController
而发现在UITabBarController实现上边两个方法不起作用
所以一般是在UINavigationController里实现2方法,所以此处返回.topViewController
3.隐藏和覆盖隐藏(指定调用某个页面的隐藏方法)
prefersStatusBarHidden
方法和childViewControllerForStatusBarHidden
同上1.2.,一个是样式,一个是隐藏
4.动画风格
在preferredStatusBarUpdateAnimation
方法里指定动画风格
5.刷新状态栏和动画刷新状态栏
调用- setNeedsStatusBarAppearanceUpdate
方法刷新
将此方法放在动画代码里即有动画效果
Demo请点击:
end~愿您有所收获
网友评论