在做电子书阅读器的时候,发现全屏阅读是需要隐藏状态栏的。百度了很多方法,说的都不是很清楚。
最后找到了一个方法。只需在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];
本文介绍如何在iOS应用中实现全屏阅读时的状态栏隐藏功能。通过重写UIViewController中的两个方法:prefersStatusBarHidden及preferredStatusBarStyle,并调用setNeedsStatusBarAppearanceUpdate方法来动态更改状态栏样式。
1万+

被折叠的 条评论
为什么被折叠?



