簡體   English   中英

Swift 在應用程序內強制使用暗/亮模式

[英]Swift force dark/light mode inside an app

我希望用戶按下一個按鈕並強制更改應用程序內的暗/亮模式,代碼可以工作,但需要按兩次按鈕才能使其工作,很奇怪......有人可以看看嗎? 謝謝!

func darkOrLight() {
    let window = UIApplication.shared.keyWindow
    if #available(iOS 13.0, *) {
        if window?.overrideUserInterfaceStyle == .dark {
            window?.overrideUserInterfaceStyle = .light
        } else {
            window?.overrideUserInterfaceStyle = .dark
        }
    } 
}

函數暗光模式(){

    if #available(iOS 13.0, *) {

    if UIApplication.shared.keyWindow!.overrideUserInterfaceStyle == .dark {

        UIApplication.shared.keyWindow!.overrideUserInterfaceStyle = .light

    }
    else {

        UIApplication.shared.keyWindow!.overrideUserInterfaceStyle = .dark

    }
    }
}

塊引用

問題解決了,不要使用 overrideUserInterFaceStyle 來檢查當前的主題模式,

if #available(iOS 13.0, *) {
if UITraitCollection.current.userInterfaceStyle == .dark {
    window?.overrideUserInterfaceStyle = .light
}
else {
    window?.overrideUserInterfaceStyle = .dark
}

}

此代碼假定僅有的兩個值是darklight 但是初始UIUserInterfaceStyle值是unspecified ,在這種情況下它使用當前系統設置。

與其在你的應用程序中使用“dark”與“light”,不如考慮給他們三個選擇,“dark”、“light”和“system default”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM