iOS13+Swift5.1+Xcode11强制用户使用浅色模式/深色模式(就算用户切换为暗黑模式咱们App的UI也不变)

需求场景:

iOS13以后,用户能够一键把iPhone的主题色设为深色模式,对于咱们开发者来讲,理论上咱们的App须要再作一套深色模式下的UI,对于一些自定义比较多的App来讲简直就是噩梦。前端

好比如下这些状况:web

App的某些页面或所有页面都是webview作的,再作一套UI的话前端大哥甩手不干;或者页面里的字体颜色背景颜色不是用的苹果原生color。bash

总之就是不想搞两套UI。ide

解决方案:

让用户不管是在浅色仍是深色模式下,咱们App的UI始终不变字体

1.全局(所有页面都只用一种UI):spa

在info.plist里面加一个key:UIUserInterfaceStyle,把他的值设为LightDarkcode

2.部分页面:cdn

override func viewDidLoad() {
    super.viewDidLoad()
    if #available(iOS 13.0, *) {
        overrideUserInterfaceStyle = .light
        //overrideUserInterfaceStyle = .dark
    }
}
复制代码

注:若是你的App只面向iOS13或以上的话,能够去掉if #available(iOS 13.0, *){}blog

相关文章
相关标签/搜索