iOS 状态栏更改颜色、适配等
2017-11-11 14:58
316 查看
前言
在开发过程中经常会与状态栏打交道,碰到的问题会有很多,像控制状态栏的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
状态栏三方库
相关文章推荐
- iOS更改状态栏颜色为白色
- iOS 状态栏颜色更改
- ios上 更改 状态栏(UIStatusBar)的颜色,你值得一看、收藏
- ios上 更改 状态栏(UIStatusBar)的颜色
- ios上 更改 状态栏(UIStatusBar)的颜色
- ios上 更改 状态栏(UIStatusBar)的颜色,你值得一看、收藏
- iOS 更改状态栏、导航栏颜色的几种方法
- ios 适配iPhonex时可以改变状态栏statusBar的背景颜色
- ios上 更改 状态栏(UIStatusBar)的颜色,你值得一看、收藏
- ios上 更改 状态栏(UIStatusBar)的颜色
- ios上 更改 状态栏(UIStatusBar)的颜色,你值得一看、收藏
- iOS开发之更改状态栏字体颜色
- ios上 更改 状态栏(UIStatusBar)的颜色
- ios上 更改 状态栏(UIStatusBar)的颜色,你值得一看、收藏
- ios UIStatusBar statusBar 状态栏 更改状态栏颜色
- iOS开发,更改状态栏(StatusBar)文字颜色为白色
- ios上 更改 状态栏(UIStatusBar)的颜色,你值得一看、收藏
- ios上 更改 状态栏(UIStatusBar)的颜色
- ios上 更改 状态栏(UIStatusBar)的颜色
- iOS-更改状态栏背景和文字颜色(OC + Swift3)