状态栏黑色(默认)风格:UIStatusBarStyleDefault

状态栏白色风格:UIStatusBarStyleLightContent

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

状态栏字体的颜色只由下面的属性设定:

[UIApplication sharedApplication].statusBarStyle

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

1、在AppDelegate中设置为白色风格:

[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;

2、在特定的ViewController中做如下设置:

- (void)viewWillAppear:(BOOL)animated {[super viewWillAppear:animated];[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
}- (void)viewWillDisappear:(BOOL)animated {[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;[super viewWillDisappear:animated];
}

二、在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、在ViewController中重写preferredStatusBarStyle方法。

- (UIStatusBarStyle)preferredStatusBarStyle {return UIStatusBarStyleDefault;
}

2、在viewDidload中调用:

- (void)viewDidLoad {[super viewDidLoad];[self setNeedsStatusBarAppearanceUpdate];
}

但是,当ViewController在Navigation中时,preferredStatusBarStyle方法根本不用被调用。

原因是,[self setNeedsStatusBarAppearanceUpdate]发出后,只会调用NavigationController中的preferredStatusBarStyle方法,ViewController中的preferredStatusBarStyley方法不会被调用。

解决办法有两个:

方法一:设置NavigationBar的barStyle 属性会影响statusBar的字体和背景色。如下:

//status bar的字体为白色,导航栏的背景色是黑色。

self.navigationController.navigationBar.barStyle = UIBarStyleBlack;

//status bar的字体为黑色,导航栏的背景色是白色,状态栏的背景色也是白色。

self.navigationController.navigationBar.barStyle = UIBarStyleDefault;

方法二:自定义一个NavigationBar的子类,在这个子类中重写preferredStatusBarStyle方法:

MyNav* nav = [[MyNav alloc] initWithRootViewController:vc];
self.window.rootViewController = nav;@implementation MyNav
- (UIStatusBarStyle)preferredStatusBarStyle {UIViewController* topVC = self.topViewController;return [topVC preferredStatusBarStyle];
}

iOS设置状态栏颜色相关推荐

  1. ios 设置状态栏颜色

    UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] va ...

  2. ios 系统状态栏样式修改_超简单!!! iOS设置状态栏、导航栏按钮、标题、颜色、透明度,偏移等...

    原标题:超简单!!! iOS设置状态栏.导航栏按钮.标题.颜色.透明度,偏移等 1. 要实现以下这些效果都非常简单 2. 废话不多说,先看看实现效果 3. 下面告诉你我为什么说实现这些效果非常简单 比 ...

  3. iOS 设置状态栏样式

    iOS设置状态栏样式可以使用两种方式. 方式一: 直接在需要改变默认状态栏样式的控制器中实现一个方法(其他任何事情都不用做): // 返回状态栏的样式 - (UIStatusBarStyle)pref ...

  4. 设置状态栏颜色、沉浸式状态栏

    导入依赖: implementation 'com.gyf.immersionbar:immersionbar:3.0.0' gradle.properties加入如下配置,不然可能编译报错: and ...

  5. Android设置状态栏颜色,沉浸式状态栏 fllutter Android设置沉浸式状态栏

    1. Android原生设置沉浸式状态栏,设置状态栏颜色,字体颜色 import android.annotation.TargetApi; import android.app.Activity; ...

  6. html设置ios状态栏颜色,iOS 修改状态栏颜色

    iOS中修改状态颜色在iOS9后官方废弃了下面这种方法 [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDef ...

  7. Android App设置状态栏颜色

    非常简单,只要在res/values/color.xml文件里改变colorPrimaryDark的值就可以了,状态栏的颜色就是来自它. 进入android studio,在color.xml里面双击 ...

  8. iOS7设置状态栏颜色

    iOS7设置状态栏是透明的了,而视图控制器View Controller又是full Screen,因此当你用TableView时可以将整个TableView覆盖在view上面,然后将view的背景设 ...

  9. android实现系统状态栏的隐藏方法,Android隐藏系统状态栏(沉浸式状态栏)和设置状态栏颜色...

    Android 5.0(API 21)之后就可以对系统状态栏进行设置了,这里我不是想深入讨论对系统状态栏的一些高级设置,因为一般也用不到,我只想说最常见的两种场景 隐藏系统状态栏,这就是感觉很牛逼的沉 ...

最新文章

  1. php sharepoint,如何使用php连接sharepoint
  2. SOR迭代求解线性方程组代码实现
  3. c++ 取成员函数地址_c及c++指针及引用简单解释(自学学习心得)
  4. ruby 工程的创建 使用JetBrains RubyMine建立rails 工程
  5. 计算机组成流水系统可以,计算机组成原理实验十三建立指令流水系统实验
  6. ionic 支持float吗_机器人协会 | 一起拼机器人吗?
  7. c#web页面显示弹窗_基于 HTML5 WebGL 的 3D 风机 Web 组态工业互联网应用
  8. CSDN 原力计划之最具技术影响力企业博客英雄榜 发布!
  9. POJ1088 Bailian1088 滑雪【DFS+记忆化搜索】
  10. Android代码 listview选中,Android开发listview选中高亮简单实现代码分享
  11. 涉密计算机检查问题,针对RG涉密信息自检查工具1.0Beta检查出来的电脑泄密问题的应对措施?...
  12. 详解动态代理及其实现原理
  13. vue.js之minix
  14. pyaudio usb playback_「APPSO」苹果还会为 iPhone 换上 USB-C 吗?
  15. flash火焰燃烧的文字效果
  16. html响应式布局ipad,响应式布局(Responsive design)
  17. blinker 第三方库_blinker 库开发注意事项
  18. 计算机的命令用英语怎么说,计算机外部和内部命令的英语及词汇
  19. 淘宝直通车为什么要低价引流,低价引流的原理、低价引流的具体操作
  20. Python-Turtle 简易教程

热门文章

  1. 打散线条lisp_几个很有用的CAD的lisp程序
  2. 让python每日给女友发情话早安
  3. Linux 4种休眠模式
  4. [AsciiDoc]_[项目管理]_[如何把adoc格式转换为docx]
  5. 小学三年级计算机总结范文,小学三年级信息技术教学工作总结范文
  6. C语言:计算两个数字的加法
  7. 《安德的游戏》和《死者的代言人》
  8. 王牌战争文明重启服务器维护费,王牌战争文明重启通行证奖励一览
  9. springMVC之@InitBinder的用法
  10. 小兔子跷跷板flash动画制作教程