iOS暗光模式不更新UIViewController

Posted

技术标签:

【中文标题】iOS暗光模式不更新UIViewController【英文标题】:iOS dark light mode not updating UIViewController 【发布时间】:2021-01-22 05:47:12 【问题描述】:

我在使用 Xcode 12.3 的 ios 项目时遇到问题。应用程序专为明暗模式而设计,如果我们在应用程序关闭时更改亮/暗模式,但如果在后台发送应用程序并更改模式并恢复应用程序,则当前 UIViewController 不会更新暗/亮模式。您可以在下面查看。

【问题讨论】:

你是如何检测明暗模式变化的? 您能否尝试覆盖此函数以在您恢复应用后检查此函数是否正在调用。 override func updateLayer() self.layer?.backgroundColor = NSColor.textBackgroundColor.cgColor // 其他更新。 我没有检测到模式更改,几乎所有元素都在自动更改颜色,但有些元素不会自动更改,因为我在 viewDidLoad 中使用代码if(traitCollection.userInterfaceStyle == .dark) 手动设置颜色并更改元素颜色。 【参考方案1】:

当用户界面样式改变时系统调用func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) 这个委托方法

请在此方法中刷新您的编程分配颜色

   override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) 
        super.traitCollectionDidChange(previousTraitCollection)
        if(traitCollection.userInterfaceStyle == .dark)
            // set your Dark UI
         else 
            // set your Light UI
        
    

【讨论】:

以上是关于iOS暗光模式不更新UIViewController的主要内容,如果未能解决你的问题,请参考以下文章