iOS项目开发实战--基本设置(一)UIStatusBar


  • 隐藏启动画面(LaunchScreen)的状态栏(UIStatusBar)
  • 设置UIStatusBar状态栏颜色(UIStatusBarStyle)
  • 设置UIStatusBar状态栏隐藏
  • 设置某个页面状态栏的颜色
  • 状态栏的动画UIStatusBarAnimation

1. 隐藏启动画面(LaunchScreen)的状态栏(UIStatusBar)

iOS项目开发实战--基本设置(一)UIStatusBar_第1张图片
隐藏启动画面状态栏

2. 设置UIStatusBar状态栏颜色(UIStatusBarStyle)

  • 方法一:
    根视图控制器实现方法
-(UIStatusBarStyle)preferredStatusBarStyle {
    return UIStatusBarStyleLightContent;
}
  • 方法二:

(1) 如图设置Status Bar Style

iOS项目开发实战--基本设置(一)UIStatusBar_第2张图片

(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请点击:

GitHub上的Demo~


end~愿您有所收获



你可能感兴趣的:(iOS项目开发实战--基本设置(一)UIStatusBar)