现在的位置: 首页 > 综合 > 正文

系统状态栏显隐的控制

2018年02月14日 ⁄ 综合 ⁄ 共 889字 ⁄ 字号 评论关闭

在ios7之前

使用下面这个方式来设置显隐状态栏

  1. [[UIApplication sharedApplication] setStatusBarHidden:YES(NO) withAnimation:UIStatusBarAnimationSlide];  

ios7.0及之后, 系统要求UIViewController自主地控制状态栏的显隐。 也即可以实现一个应用中, 有的界面显示状态栏,有的界面不显示状态栏,而且状态栏的样式可以是独立的。

  1. - (UIStatusBarStyle)preferredStatusBarStyle  
  2. {  
  3.     return UIStatusBarStyleLightContent;  
  4.     //UIStatusBarStyleDefault = 0 黑色文字,浅色背景时使用  
  5.   //UIStatusBarStyleLightContent = 1 白色文字,深色背景时使用  
  6. }  
  7.   
  8. - (BOOL)prefersStatusBarHidden  
  9. {  
  10.     return NO; //返回NO表示要显示,返回YES将hiden  
  11. }
  12.   
  13. - (UIStatusBarAnimation)preferredStatusBarUpdateAnimation  
  14. {  
  15.     return UIStatusBarAnimationSlide;
     
  16. }  

代码中,若想控制status bar的展现形式,只需要调用[self setNeedsStatusBarAppearanceUpdate];方法即可。
可以把它放在动画中进行。

  1. [UIView animateWithDuration:.3 animations:^{  
  2.             if (ISIOS7) {  
  3.                 [self setNeedsStatusBarAppearanceUpdate];  
  4.             }  
  5.         }];  

如果这个UIViewController在Navigation Controller中, 也可以用上面这种方式做到。 

抱歉!评论已关闭.