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

相關文章
相關標籤/搜索