UIStatusBar就是应用最上方显示电池和时间信息的状态栏,宽度与屏幕宽度相等,高度为20.对它的显示控制分两种情况,一种是程序启动时,另一种是程序运行的时候。
1.程序启动时。
- 在Info.plist 中将Status bar is initially hidden(UIStatusBarHidden)对应的Value设置为Yes,程序启动时会隐藏,反之会显示。如果要更改它的字体颜色,在Info中将Status bar style(UIStatusBarStyle)对应的Value设置为你想要的类型(UIStatusBarStyeLightContent。)。
2.程序运行时
- 同样是分两种情况,称它为效果A和B吧,A是你所有视图控制器的状态栏的显示与否都是可以控制的,但样式是不可控制的(所有视图控制器的状态栏都是一个样式)。B是你可以控制每个状态栏的显示和样式。在info.plist文件中添加一个key值:View controller-based status bar appearance,这个key的意思就是是否让每个控制器单独控制自己的状态栏。
- 如果想要A效果效果,将View controller-based status bar appearance值设置为NO,然后在视图控制器中加入如下代码来控制显示与否。
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
- 实现B效果需要将View controller-based status bar appearance值设置为YES,然后在需要控制状态栏显示的视图控制器中重写如下方法:
//是否显示状态栏
-(BOOL)prefersStatusBarHidden{
return NO;
}
//状态栏的样式
-(UIStatusBarStyle)preferredStatusBarStyle{
return UIStatusBarStyleLightContent;
}
题外话:如果你的视图控制器包含一个UINavigationBar,当你选择隐藏状态栏时,UINavigationBar会显示不正常,高度由64变为44,这个问题的解决办法稍后会更新。
时间: 2024-09-29 21:40:09