修改状态栏字体的颜色

原创 2015年07月10日 06:29:01


状态栏的字体为黑色: UIStatusBarStyleDefault  

状态栏的字体为白色: UIStatusBarStyleLightContent 

一、在 info.plist  中,将 View controller-based status bar appearance  设为 NO

状态栏字体的颜色只由下面的属性设定,默认为白色:

// default is UIStatusBarStyleDefault

[UIApplication sharedApplication].statusBarStyle

解决个别  vc 中状态栏字体颜色不同的办法 

1、在info.plist中,将View controller-based status bar appearance设为NO.

2、在app delegate中:

[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;

3、在个别状态栏字体颜色不一样的vc中

-(void)viewWillAppear:(BOOL)animated{

[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;

}

-(void)viewWillDisappear:(BOOL)animated

{

[super viewWillDisappear:animated];

[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;

}

二、在 info.plist  中,将 View controller-based status bar appearance  设为 YES ,或者没有设置。

View controller-based status bar appearance的默认值就是YES。

如果View controller-based status bar appearance为YES。

则[UIApplication sharedApplication].statusBarStyle 无效。

用下面的方法:

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];

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

修改状态栏字体颜色

目前只有小米的MIUI、魅族的Flyme和Android6.0以上系统可以把状态栏文字和图标换成深色。 /** * 设置状态栏图标为深色和魅族特定的文字风格 * 可以用来判断是否为Flyme用户 ...

修改手机状态栏字体的颜色(如:白底黑字)

修改手机状态栏字体颜色(如:白底黑字)

android开发 修改状态栏背景颜色和字体颜色(工作日记)

修改状态栏颜色很容易,在相关页面的主题style里,设置@color/statusbar_background_color_dark 或者andorid:statusBarColor (借用看到的...
  • esljf
  • esljf
  • 2016-01-14 16:05
  • 9988

状态栏的隐藏与显示及状态栏字体颜色的修改(精华版)

今天一个项目需求,就是关于状态栏的,作为一个资深的两年开发者来说,不是难事,于是我直接就setStatusBarHidden statusBarStyle什么的都用上了,可是,注意啊,有可是了。是这样...

改变状态栏字体的颜色

  • 2010-08-12 21:04
  • 8.85MB
  • 下载

浅谈设置状态栏字体和背景的颜色

知识普及 ios上状态栏 就是指的最上面的20像素高的部分 状态栏分前后两部分,要分清这两个概念,后面会用到: 前景部分:就是指的显示电池、时间等部分; 背景部分:就是显示黑...

Android系统更改状态栏字体颜色

随着时代的发展,Android的状态栏都不是乌黑一片了,在Android4.4之后我们可以修改状态栏的颜色或者让我们自己的View延伸到状态栏下面。我们可以进行更多的定制化了,然而有的时候我们使用的是...

怎么设置启动界面ios 8设置状态栏字体颜色

怎么设置启动界面ios 8设置状态栏字体颜色 状态栏的字体为黑色:UIStatusBarStyleDefault 状态栏的字体为白色:UIStatusBarStyleLightContent ...

android白色背景状态栏字体颜色

改变状态栏颜色的仿佛只能用于小米,魅族,已经6.0以上的手机,vivo系统源码不开发,所以没办法修改,但是我们有额外的办法

iOS结合导航栏的状态栏字体颜色设置

本文仅提供大家参考与交流,可能会有一些错误,欢迎大家指正。Xcode版本6.3.2。 在学习iOS开发的过程中,我经常会去看一些手机上的APP,看看它们的功能和布局效果。最近在做一个电影资讯项目,项目...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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