在做电子书阅读器的时候,发现全屏阅读是需要隐藏状态栏的。百度了很多方法,说的都不是很清楚。
最后找到了一个方法。只需在UIViewController实现两个方法就可以改变系统状态栏了。
- (BOOL)prefersStatusBarHidden { return NO; //返回NO表示要显示,返回YES将hiden } - (UIStatusBarStyle)preferredStatusBarStyle { return UIStatusBarStyleLightContent; //UIStatusBarStyleDefault = 0 黑色文字,浅色背景时使用 //UIStatusBarStyleLightContent = 1 白色文字,深色背景时使用 }
调用
[self setNeedsStatusBarAppearanceUpdate];
可以更新状态栏
还可以加动画更新状态栏
[UIView animateWithDuration:0.5 animations:^{ [self setNeedsStatusBarAppearanceUpdate]; }];<span style="color: rgb(92, 92, 92); font-family: Consolas, 'Courier New', Courier, mono, serif;"></span>
还有一种方法是在infor.plist中加入key:UIViewControllerBasedStatusBarAppearance 并设置其值为NO,这样就告诉系统,status bar不依赖于UIViewController。
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];