iOS 状态栏更改颜色、适配等

来源:互联网 发布:石家庄市软件测试招聘 编辑:程序博客网 时间:2024/05/22 15:50

前言

在开发过程中经常会与状态栏打交道,碰到的问题会有很多,像控制状态栏的1.显示隐藏2.颜色切换3.iPhoneX 适配,这里进行简单的总结。

1.状态栏简介

iOS的状态栏在普通iPhone上高度是20,但是在iPhoneX上是44,
颜色有两种
状态栏的字体为黑色: UIStatusBarStyleDefault
状态栏的字体为白色: UIStatusBarStyleLightContent

2.更改颜色和显隐(两种方法)

  • 方法一 :在 info.plist 中,将 View controller-based status bar appearance 设为 NO
//1.全局的设置 在app delegate中:[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent; //全局隐藏(会往上移动状态栏的高度,一般不会全局隐藏它) [UIApplication sharedApplication].statusBarHidden = YES;
//2.在要更改的VC中-(void)viewWillAppear:(BOOL)animated{     [super viewWillAppear:animated];     //黑色     [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;     //隐藏     [UIApplication sharedApplication].statusBarHidden = YES;}-(void)viewWillDisappear:(BOOL)animated{     [super viewWillDisappear:animated];     //白色     [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;     //显示     [UIApplication sharedApplication].statusBarHidden = NO;}


  • 方法二:在 info.plist 中,将 View controller-based status bar appearance 设为 YES (默认值就是YES),或者没有设置。(建议使用方法一,这个方法没研究透)

如果值为YES。方法一的设置方法则无效,用下面方法

//在基类的Navigation中设置全局颜色,但是隐藏nav的颜色会不更改self.navigationBar.barStyle = UIStatusBarStyleLightContent;[self setNeedsStatusBarAppearanceUpdate];
//在VC中设置//设置样式  - (UIStatusBarStyle)preferredStatusBarStyle {      return UIStatusBarStyleLightContent;  }  //设置是否隐藏  - (BOOL)prefersStatusBarHidden {        return NO;  }  //设置隐藏动画  - (UIStatusBarAnimation)preferredStatusBarUpdateAnimation {      return UIStatusBarAnimationNone;  } 

3.适配高度问题

//获取高度,然后在特殊界面根据状态栏高度适配//statusBar高度#define StatusBarHeight   [UIApplication sharedApplication].statusBarFrame.size.height

参考:

  • 链接1
  • 链接2
  • 状态栏三方库
原创粉丝点击