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

前言

在开发过程中经常会与状态栏打交道,碰到的问题会有很多,像控制状态栏的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

参考:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值