[英]Possible to reload app when dark/light mode changes?
我的應用廣泛使用 CAGradientLayers,當切換暗/亮模式時,它們顯然不會自動更新其 colors。 當應用程序關閉並重新打開時,他們將更新他們的 colors。
我知道我可以使用以下代碼來檢測更改並單獨重新加載每個視圖
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
//
}
但是,我正在尋找不需要我單獨更新每個視圖的修復程序。 有沒有辦法檢測亮/暗模式更改(可能在應用程序委托內)並強制整個應用程序重新加載(好像它已被強制關閉並重新打開)?
沒有辦法以這種方式“重新加載您的應用程序”。 出現問題是因為CAGradientLayer
使用CGColor
,它不能動態適應系統樣式。
我通過在實現traitCollectionDidChange
的漸變層周圍包裹UIView
來解決該問題,以相應地更新漸變的 colors。 也許您可以這樣做並將其用作子視圖而不是子層。
您可以創建一個覆蓋 traitCollectionDidChange 的超級 class traitCollectionDidChange
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.