改变状态栏样式

  • 两种状态栏样式:
    1

  • 要改变状态栏的样式,需要在UIViewController中重载如下方法:

1
2
3
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
  • 这个方法不能直接调用,需要在改变样式的地方调用如下方法:
1
2
3
4
- (void)viewWillAppear:(Bool)animated {
[super viewWillAppear:animated];
[self setNeedsStatusBarAppearanceUpdate];
}

显示隐藏

  • 在控制器中重载如下方法:
1
2
3
- (Bool)prefersStatusBarHidden {
return YES;
}

同样不可以直接调用,需要调用这个方法使其生效:[self setNeedsStatusBarAppearanceUpdate]

动画效果

  • 两种动画效果:UIStatusBarAnimationFadeUIStatusBarAnimationSlide
  • 在控制器中重载如下方法:
1
2
3
- (UIStatusBarAnimation)preferredStatusBarUpdatedAnimation {
return UIStatusBarAnimationSlide;
}

重载了这个方法还没有动画效果先,需要把[self setNeedsStatusBarAppearanceUpdate]放在block中执行。

1
2
3
4
[UIView animateWithDuration:0.3 
animations:^{
[self setNeedsStatusBarAppearanceUpdate];
}];
坚持原创技术分享,您的支持将鼓励我继续创作!