状态栏颜色(白色黑色)的设置的小技巧

状态栏颜色(白色黑色)的设置的小技巧,第1张

我们都知道iPhone手机上面的状态栏颜色默认是黑色的,但是有些界面顶部是一些图片,或者刚好是暗色的图片背景的时候,那么此时就看不到状态栏的字了,这个时候就很尴尬了,所以我们就需要去修改状态栏的颜色修改成白色

网上还多人云亦云的什么在plist文件里面改属性,然后在项目启动的时候设置

[application setStatusBarStyle:UIStatusBarStyleLightContent animated:NO]

但是我们会发现,这种方法太死板了。而且在iOS9之后,这个方法就已经被苹果粑粑废弃了,推荐使用的是这么一个方法

- (UIStatusBarStyle)preferredStatusBarStyle{ }

这里我总结了一个小技巧,就是直接给UINavigationController 写一个分类方法在这个分类里面重写

- (UIStatusBarStyle)preferredStatusBarStyle{ } 这个方法,如果你需要默认颜色是黑色这里就返回

UIStatusBarStyleDefault,反之要白色的话就返回UIStatusBarStyleLightContent

当然项目中肯定不全是黑色状态栏或者白色状态栏,那么就需要你在你需要改变的界面直接重写这个方法即可

如果你在某一个界面需要有不同颜色,那么在那个界面重写最后一个方法就ok啦。这样是不是很简单呢。

这样比之前iOS9之前什么viewWillAppear 和viewWillDissAppear 反复设置简单快捷!

系统默认状态栏字体颜色为黑色,那么如何改成白色呢?

a.需要设置View controller-based status bar appearance为NO,

b.设置status bar style 为UIStatusBarStyleLightContent。

a.需要设置View controller-based status bar appearance为YES,系统默认为YES可不设置

设置status bar style 为UIStatusBarStyleDefault,系统默认为default可不设置

b.自定义一个基类导航控制器重写preferredStatusBarStyle方法

导航控制器.m文件

iOS提供了preferredStatusBarStyle方法给控制器来控制状态栏的颜色,但是由于导航控制器的存在,直接在控制器中写这个方法是不会执行的,因此需要在导航控制器中重写这个方法,让导航控制器的栈顶控制器来执行这个方法。

c.在需要设置的控制器中添加preferredStatusBarStyle方法

控制器.m文件,用上面的基类导航控制器包含这个控制器


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11331718.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存