ios9 状态栏 改变文本颜色

转载 2016年08月30日 09:58:08
状态栏的字体为黑色:UIStatusBarStyleDefault
状态栏的字体为白色:UIStatusBarStyleLightContent

APP启动页状态栏颜色设置
在info.plist添加 Status bar style,改变style值,就可以改变颜色,默认是Gray style

一、在info.plist中,将View controller-based status bar appearance设置为NO,白色,YES,黑色
如果View controller-based status bar appearance为YES。
则[UIApplication sharedApplication].statusBarStyle 无效。

解决个别VC中状态栏字体颜色不同的办法
二、在app delegate中:
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
三、在个别状态栏字体颜色不一样的vc中
-(void)viewWillAppear:(BOOL)animated
{
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
}
-(void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
}

用下面的方法:
1、在vc中重写vc的preferredStatusBarStyle方法。
-(UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleDefault;
}
2、在viewDidload中调用:[self setNeedsStatusBarAppearanceUpdate];

但是,当vc在nav中时,上面方法没用,vc中的preferredStatusBarStyle方法根本不用被调用。
原因是,[self setNeedsStatusBarAppearanceUpdate]发出后,
只会调用navigation controller中的preferredStatusBarStyle方法,
vc中的preferredStatusBarStyley方法跟本不会被调用。

解决办法有两个:
方法一:
设置navbar的barStyle 属性会影响status bar 的字体和背景色。如下。
//status bar的字体为白色
//导航栏的背景色是黑色。
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;

//status bar的字体为黑色
//导航栏的背景色是白色,状态栏的背景色也是白色。
//self.navigationController.navigationBar.barStyle = UIBarStyleDefault;

方法二:
自定义一个nav bar的子类,在这个子类中重写preferredStatusBarStyle方法:
MyNav* nav = [[MyNav alloc] initWithRootViewController:vc];
self.window.rootViewController = nav;

@implementation MyNav

- (UIStatusBarStyle)preferredStatusBarStyle
{
UIViewController* topVC = self.topViewController;
return [topVC preferredStatusBarStyle];

}

// 记录来源于百度知道的回答。

让手机状态栏随心所欲的改变颜色,即android的沉浸式状态栏

方法一: 这种方法只是让状态栏透明化了,状态栏颜色跟所在的跟布局背景色一致。不能设置随心所欲的颜色; 首先:在styles里面添加它的主题 然后:在androidManifest里在添加主题 最后:在...
  • huanglei201502
  • huanglei201502
  • 2015年12月17日 16:59
  • 1053

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

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

android沉浸式状态栏、变色状态栏、透明状态栏、修改状态栏颜色及透明

首先我要区分清楚沉浸式状态栏与变色状态栏。 沉浸式状态栏指的是,状态栏隐藏,在手指做了相关操作后,状态栏显示出来,例如视频播放器,在播放视频时是隐藏状态栏的,但是点击屏幕的时候,状态栏会显示出来,再...
  • u013334392
  • u013334392
  • 2016年10月09日 12:59
  • 515

ios上 更改 状态栏(UIStatusBar)的颜色

IOS上 关于状态栏的相关设置(UIStatusBar) 知识普及 ios上状态栏 就是指的最上面的20像素高的部分 状态栏分前后两部分,要分清这两个概念,后面会用到: 前景部...
  • yidu_blog
  • yidu_blog
  • 2016年06月21日 19:38
  • 305

iOS-更改状态栏背景和文字颜色(OC + Swift3)

更改状态栏背景使用runtime和KVC直接修改,文字颜色直接使用属性修改OC版本:// // ViewController.m // StatusBarDemo // // Created b...
  • qiuxuewei2012
  • qiuxuewei2012
  • 2016年12月20日 15:30
  • 2798

android标题栏、状态栏图标文字颜色及背景动态变化

android中沉浸式状态栏的文章已经满大街了,可是在实现某些效果时,还是得各种搜索,测试一通后,最后还常常满足不了要求,即使好不容易在一部手机上满足了需求,放在另外一手机上,发现效果差强人意。今天把...
  • smileiam
  • smileiam
  • 2017年06月22日 14:22
  • 9601

安卓4.4以上修改状态栏颜色

很多刚开始接触安卓的人,可能都比较喜欢安卓5.0的Material Design,然而七月官方的安卓版本份额显示:5.0以上的市场份额仍小于13%(全球范围内,中国更小),4.4+5.0+5.1的份额...
  • koche
  • koche
  • 2015年07月05日 23:08
  • 7363

Android设置状态栏透明与设置状态栏字体颜色Mode

#1 概念: 变色状态栏(透明状态栏):指的是状态栏与导航栏颜色相同,或者透明 沉浸式状态栏:,状态栏隐藏,在手指做了相关操作后,状态栏显示出来,例如视频播放器,在播放视频时是隐藏状态栏的,但是点击屏...
  • baopengjian
  • baopengjian
  • 2017年04月07日 11:31
  • 4849

Android学习第八弹之改变状态栏的颜色使其与APP风格一体化

公众号:smart_android 作者:耿广龙|loonggg 点击“阅读原文”,可查看更多内容和干货 导语:沉浸式状态栏,改变状态栏的颜色使之与APP风格一体化是不是感觉很漂亮,很美?...
  • loongggdroid
  • loongggdroid
  • 2015年08月11日 11:04
  • 56677

Android 状态栏的 颜色 的设置上的一些问题 4.4以上 ,字体颜色优化

之前一致设置的是状态栏 透明的这样子, 但是在不同版本的机型上可能显示的效果会有偏差,这也是google做了些修改,5.0支持设置颜色, 4.0只支持透明而已 想要4.4 - 6.0风格完全保持一致...
  • kongbaidepao
  • kongbaidepao
  • 2016年08月06日 18:02
  • 6495
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ios9 状态栏 改变文本颜色
举报原因:
原因补充:

(最多只允许输入30个字)