iOS 状态栏的隐藏/显示 黑色/白色

新建工程,状态栏默认竖屏显示,横屏隐藏,字体黑色。

  • 未修改Info.plist情况下,状态栏默认由控制器管理,在对应的视图类中重写该父类方法
    需求:状态栏横竖屏都显示/状态栏隐藏
-(BOOL)prefersStatusBarHidden{
    [super prefersStatusBarHidden];
    return YES; //状态栏隐藏  NO显示   
}

需求:指定状态栏颜色

-(UIStatusBarStyle)preferredStatusBarStyle{
    return UIStatusBarStyleLightContent;   //状态栏字体白色 UIStatusBarStyleDefault黑色
}
  • Info.plist中设置View controller-based status bar appearance为NO的情况下,以上方法失效。状态栏由[UIApplication sharedApplication]来决定,对应地方添加以下
    iOS 状态栏的隐藏/显示 黑色/白色_第1张图片
    设置View controller-based status bar appearance为NO.png

    需求:状态栏横竖屏都显示/状态栏隐藏
[UIApplication sharedApplication].statusBarHidden = YES;  //状态栏隐藏  NO显示
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];     //状态栏隐藏  NO显示 同时可指定隐藏显示的动画

需求:修改状态栏颜色

[UIApplication sharedApplication].statusBarStyle = ![UIApplication sharedApplication].statusBarStyle;  //UIStatusBarStyleLightContent状态栏字体白色 UIStatusBarStyleDefault黑色
[[UIApplication sharedApplication]setStatusBarStyle:![UIApplication sharedApplication].statusBarStyle  animated:YES];    //UIStatusBarStyleLightContent状态栏字体白色 UIStatusBarStyleDefault黑色  同时可指定变换动画

注意:View controller-based status bar appearance-NO一但添加,通过重写父类方法来控制状态栏的地方都会失效,反过来也是。

期待你的评论建议O(∩_∩)O~

你可能感兴趣的:(iOS 状态栏的隐藏/显示 黑色/白色)