iOS9之前,在plist文件中 插入一个新的key,名字为View controller-based status bar appearance,并将其值设置为NO。

然后敲入代码:

[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

虽然在iOS9之后仍然可以用,但是苹果不推荐了 ,

Use -[UIViewController preferredStatusBarStyle]"

一般我们都是将viewcontroller  嵌入到 uinavigationcontroller 中,如果将viewcontroller嵌入到uinavigationcontroller中,这时候状态栏的颜色控制将 交给uinavigationcontroller,

所以我们要自定义uinavigationcontroller(创建UINavigationController一个Category,在分类里重写),重写里面的方法

- (UIViewController *)childViewControllerForStatusBarStyle{
  return self.visibleViewController;
}
- (UIViewController *)childViewControllerForStatusBarHidden{
  return self.visibleViewController;
}
该类扩展的意思就是,你不要调用Container(NavigationController或者UITabBarController)的preferredStatusBarStyle这个方法,去调用self.visibleViewControllerpreferredStatusBarStyle,那么,我们写在UIViewcontroller里面的方法就会被调用了,就能更改StatusBar的前景颜色了。
意思就是 你调用我

使用 preferredStatusBarStyle 设置状态栏颜色的更多相关文章

  1. Android中设置状态栏颜色和字体颜色

    1.在这里设置的状态栏背景为白色,字体为暗色 创建一个方法进行设置: protected void setStatusBar() { if (Build.VERSION.SDK_INT >= B ...

  2. Android 使用SystemBarTint设置状态栏颜色

    做项目时,发现APP的状态栏是系统默认的颜色,突然想到,为啥别的APP是自己设置的颜色(和APP本身很相搭),于是也想给自己的APP设置系统状态栏的颜色,更加美美哒... 搜了下,发现原来设置状态栏居 ...

  3. iOS之设置状态栏颜色

    状态栏的字体为黑色:UIStatusBarStyleDefault 状态栏的字体为白色:UIStatusBarStyleLightContent 一.在info.plist中,将View contro ...

  4. Android 针对单个Activity设置状态栏颜色

    代码如下: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {//因为不是所有的系统都可以设置颜色的,在4.4以下就不可以. ...

  5. Android设置状态栏颜色

    1.代码设置if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = this.getWindow ...

  6. android 设置状态栏与标题背景颜色一致

    必须在Android4.4以上版本才能设置状态栏颜色: 一.在单个Activity里面,设置状态栏的背景: 效果: 1.在Activity的布局根文件中添加属性: android:fitsSystem ...

  7. Android开发技巧——设置系统状态栏颜色

    开门见山,先来三张效果图: 然后我们再来讲如何实现以及如何快速地实现. 如何实现 实现设置系统状态栏颜色需要至少在Android 4.4.2(API 19)以上.这是因为,在这个版本以下,没有任何的A ...

  8. Android 4.4及以上系统下应用的状态栏颜色渐变效果的实现

    上一篇转载的博文里讲到了怎么开启状态栏透明的效果,不过如果在有ActionBar的情况下,会出现状态栏透明而ActionBar横亘在状态栏和内容之间的丑陋情况,如下图: 通过百度之后,发现了GitHu ...

  9. Android修改状态栏颜色全方位教程

    关键字:状态栏着色 透明状态栏 沉浸式 白底黑字 Github Demo:https://github.com/imflyn/Eyes 参考文章: Android-transulcent-status ...

随机推荐

  1. struts2 action 返回图片流

    数据库为mssql zp字段为image类型 java代码 OutputStream out = null; try { String contenttype = "image/jpeg&q ...

  2. 让Fragment监听返回键

    Activity可以很容易的得到物理返回键的监听事件,而Fragment却不能.所以使用到了以下的方法. 首先创建一个抽象类BackHandledFragment,该类有一个抽象方法onBackPre ...

  3. python+selenium环境搭建

    这里主要基于windows平台. 下载python.http://python.org/getit/ 下载setuptools [python的基础包工具].http://pypi.python.or ...

  4. selenium python (十四)上传文件的处理

    #!/usr/bin/python# -*- coding: utf-8 -*-__author__ = 'zuoanvip' #上传过程一般要打开一个系统的windows窗口,从窗口选择本地文件添加 ...

  5. Visual Studio下Qt调用IDL

    一.简单介绍: 1.ActiveQt包含QAxContainer和QAxServer组件. 1) QAxContainer允许使用COM对象,并且可以将ActiveX控件嵌入到Qt程序中去. QAxC ...

  6. css3.0新属性效果在ie下的解决方案(兼容性)

    css3.0增加的新属性,如投影.渐变.旋转.圆角等等!这些新标准属性在ie6.ie7.ie8浏览器版本里得不到很好的支持,相信ie以后的新版本也会支持这些新属性的.目前ie6.ie7.ie8浏览器不 ...

  7. GC算法 垃圾收集器

    GC算法 垃圾收集器 参考:http://www.cnblogs.com/ityouknow/p/5614961.html 概述 垃圾收集 Garbage Collection 通常被称为“GC”,它 ...

  8. 动态创建二维vector数组 C和C++ 及指针与引用的区别

    二维vectorvector<vector <int> > ivec(m ,vector<int>(n));    //m*n的二维vector 动态创建m*n的二 ...

  9. Guidelines for clock

    用两个256x16的基本存储器构成512x16的数据存储器,因为256x16的基本存储器读写时序不太符合MCU的要求,于是改写之.利用下降沿控制输入,作为基本存储器控制时钟,而上升沿控制数据输出寄存器 ...

  10. nodejs 基本操作

    查看nodejs版本 nodejs -v 升级nodejs node有一个模块叫n(这名字可够短的...),是专门用来管理node.js的版本的.首先安装n模块:npm install -g n 第二 ...