云鹰电商-让苹果手机更流畅

当前位置:首页 - 果粉资讯 - 正文

君子好学,自强不息!

iOS 正确设置 status bar style 颜色

2024-12-01 | 果粉资讯 | 云鹰电商 | 97°c
A+ A-

在开发iOS App时,很多应用都要根据当前App内容颜色来设置iOS系统状态栏的配色,黑色或者白色——尤其是在iOS 13系统支持了黑色模式后。

image.png

平时,别人会告诉你这么做:

UIApplication.shared.statusBarStyle = .default

但这会触发警告: 不推荐使用 在 iOS 版 9 。 那么有没有其他办法呢? 有,官方推荐的写法是这样的:

override var preferredStatusBarStyle: UIStatusBarStyle {

return .lightContent

这个要在你的 ViewController 里才可以...... 但你绝望地发现,它根本没有被调用。

于是你继续搜索......

在你的 信息.plist中 里, 视图 控制者-基于 状态 酒吧 出现 必须设置为 YES ,否则就只能在 Xcode 的 target 中设置状态栏的黑白配色。

但是...... preferredStatusBarStyle 依旧没有被调用。

这到底是怎么回事?

这实际上是由于 UINavigationController 导致的,由于它通常是 ViewController 里的最高层级,它不会将 preferredStatusBarStyle 请求向下传递,相反,它会根据自身的 UINavigationBar.barStyle 属性来决定系统状态栏到底是黑色还是白色,如果 barStyle 是 .黑色 ,那么系统栏就是 .lightContent 也就是白色; 但如果 barStyle 是 .默认 ,那么系统栏就也是默认的黑色了。

所以,如果你想改变系统栏颜色,在 UINavigationController 下的 ViewController 就需要修改 UINavigationBar.barStyle 而不是重写 preferredStatusBarStyle 。

另外

如果你是在 iOS 13 以上版本的 iOS 中这么做,你会发现系统状态栏还是不变...... 所以你可能需要在你的 信息.plist中 里加上 UIUserInterfaceStyle 字段,并设置值为 光 ,这样可以让你的 App 不配适 iOS 13 的黑色模式——因为如果配适了的话,在黑色模式下,你的系统状态栏将永远是白色,不会变色......


这里是分享代码,在后台添加

本文来源:云鹰电商

本文地址:https://www.yunyingds.com/post/1929.html

关注我们:刷卡问题加微信搜索“sdb235”添加我为好友

版权声明:如无特别注明,转载请注明本文地址!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。


搜索