(关于修改顶部状态栏背景以及前景色)

首先,在看文章之前首先要知道 View controller-based status bar appearance这么一个key,在info.plist中进行配置

info.plist

iPhone的状态栏分为前景和背景,前景部分指的是显示电池, 时间等部分; 背景部分指的是白色(图bg1)或者黑色(图bg2)的背景部分

bg1.png

bg2.png

修改前景色

如果 View controller-based status bar appearance 设置为YES, 那么控制器对status bar的设置优先级高于application的设置 ,可以在控制器中通过以下代码进行修改:

- (void)viewDidLoad {

[super viewDidLoad];

[self preferredStatusBarStyle];

//通过改背景色修改状态栏的字体(信号,时间,电池)的颜色

self.view.backgroundColor = [UIColor blackColor];

}

- (UIStatusBarStyle)preferredStatusBarStyle {

return UIStatusBarStyleLightContent;

}

默认的状态栏的StatusBarStyle为UIStatusBarStyleDefault ,也就是黑色;相反的,如果状态栏的StatusBarStyle为UIStatusBarStyleLightContent ,那就是亮色.如果修改StatusBarStyle这个属性,要记得修改背景色不与该颜色相同.否则视图上将看不见状态栏的字体.

2.如果 View controller-based status bar appearance设置为NO,那么application的设置优先级最高. 可以在AppDelegate.m的- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法里添加如下代码:

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

如果只是在某个页面修改状态栏, 其他页面不修改, 就需要在相应控制器的- (void)viewWillAppear:(BOOL)animated方法里添加, 并且在- (void)viewWillDisappear:(BOOL)animated恢复默认的风格, 代码如下:

- (void)viewWillAppear:(BOOL)animated {

//view出现的时候状态栏前景颜色改为亮色

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

}

- (void)viewWillDisappear:(BOOL)animated{

//view消失的时候状态栏前景颜色改为默认/黑色

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];

}

同上, 要记得修改状态栏背景色不与该颜色相同.否则视图上将看不见状态栏的字体.

修改背景色

1.当View controller-based status bar appearance 设置为YES,控制器才有权限对status的属性进行修改.

2.iOS的状态栏背景色默认是透明的.

在没有导航栏的时候可以自定义一个黑色的,高度为20的View添加到状态栏的位置,代码如下:

UIView *topView = [[UIView alloc] init];

topView.backgroundColor = [UIColor blackColor];

[self.view addSubview:topView];

[topView mas_updateConstraints:^(MASConstraintMaker *make) {

make.top.left.right.equalTo(self.view);

make.height.mas_offset(20);

}];

而且, 前景色会随着背景改变而改变, 无需再次设置.

当有导航栏的时候就需要修改导航栏的背景色继而改变状态栏的背景色,通过设置self.navigationController.navigationBar.barStyle这个属性进行设置:

//黑色

self.navigationController.navigationBar.barStyle = UIBarStyleBlack;

//白色

self.navigationController.navigationBar.barStyle = UIBarStyleDefault;

通过以上方法, 就可以根据自己的需求对状态栏的颜色进行所需要的修改了.

ios 系统状态栏样式修改_iOS 导航栏颜色和状态栏颜色修改相关推荐

  1. 直播系统代码,自行更改导航栏样式

    直播系统代码,自行更改导航栏样式实现的相关代码 1.添加导航栏的UI引用 app.module.tsimport { MatToolbarModule } from '@angular/materia ...

  2. android 4.4 以上沉浸式状态栏和沉浸式导航栏管理,一句代码轻松实现

    ImmersionBar 项目地址:gyf-dev/ImmersionBar  简介:android 4.4 以上沉浸式状态栏和沉浸式导航栏管理,一句代码轻松实现,以及对 bar 的其他设置,详见 R ...

  3. 修改自定义导航栏按钮文字内容的方法

    第一步在 pages.json 内部定义 原生导航栏搜索框和按钮 {"path": "pages/tabbar/dingdan/dingdan","s ...

  4. 固定导航栏android,Android 状态栏和导航栏的真终极解决方案

    去年我写过一篇文章,透明状态栏和导航栏的终极解决方案,并在 Github 上开源了代码,https://github.com/Zackratos/UltimateBar,其实在那之后,我一直对这个项目 ...

  5. Android进阶之路 - 顶部状态栏、底部虚拟导航栏相关操作

    快过年了,2018希望我们每个人都健康,开心,同时继续上进 ! 2020补充:基本包含了我几年在开发中用到的关于顶部状态栏和底部导航栏的绝大部分功能 ~ 顶部状态栏 状态栏是否可见 获取状态栏高度 隐 ...

  6. IOS15的导航栏高度和状态栏高度和tabBar高度的获取

    IOS15的导航栏高度和状态栏高度和tabBar高度的获取 这都2021年11月份了.还在有人使用[UIApplication sharedApplication].keyWindow 这样过期的ap ...

  7. 微信小程序入门四: 导航栏样式、tabBar导航栏

    实例内容 导航栏样式设置 tabBar导航栏 实例一:导航栏样式设置 小程序的导航栏样式在app.json中定义. 这里设置导航,背景黑色,文字白色,文字内容测试小程序 app.json内容: {&q ...

  8. Android最新版修改顶部导航栏颜色和字

    ** Android最新版修改顶部导航栏颜色和字 ** 个人所用的AndroidStudio为4.1.2 修改App的名称在android工作区间下找到res➡values➡strings.xml这里 ...

  9. 修改bootstrap导航栏样式(颜色,高)

    提示:记录bootstrap导航栏样式(颜色,高)的修改 文章目录 前言 一.bootstrap导航栏样式 (颜色,高) 的修改 前言 在写自适应网页时想使用bootstrap实现,但与原稿的有一些差 ...

  10. 【uni-app】修改原生导航栏文字和文字样式

    修改文字 uni.setNavigationBarTitle({//这是修改后的导航栏文字title: "首页" }) 修改文字颜色以及导航栏背景色 uni.setNavigati ...

最新文章

  1. IE浏览器里无法运行脚本(script)常见的解决方法!
  2. 从websphere6.1迁移到weblogic10.3的问题总结--转
  3. 【详细解析】1080 MOOC期终成绩 (25分)_45行代码AC
  4. js fn无法访问,不报错
  5. CentOS 8安装并配置NFS服务
  6. 玩转keybd_event
  7. 微服务“新秀”之Service Mesh
  8. 线程安全单例最佳实践,C#中的Lazy是如何保证线程安全的
  9. js selector设计及实现(一) 实现思路
  10. python pdb pip安装_Python调试器,一个优秀开发人员的必备技能包
  11. 自动驾驶中的深度学习
  12. 原生JS封装Modal弹框
  13. AndroidStudio安装之后虚拟机启动失败解决方法
  14. 如何从一个大规模的文本中筛选出符合条件的记录
  15. Oracle EBS创建LPN
  16. Tkinter:文本框Entry
  17. 拖延的原因、误区、及建议
  18. c++ 编译DLL和使用DLL
  19. TikTok蝉联2021年8月全球热门移动应用下载榜冠军
  20. 百度SEO一本通pdf

热门文章

  1. 1331:【例1-2】后缀表达式的值
  2. springboot 删除路径下面所有文件_Spring boot内置Tomcat的临时目录被删除导致文件上传不了-问题解析...
  3. 历史课-中国朝代发展
  4. word 2007中在页眉中插入或这删除下划线
  5. Windows环境下32位汇编语言程序设计(典藏版) 高清完整
  6. centos7挂载ntfs文件系统_CentOS7挂载NTFS格式的硬盘
  7. Android知识体系思维导图
  8. php阿里支付回调逻辑,php 银联支付回调
  9. nginx 客户端返回499的错误码
  10. hook IE 总结