【问题标题】:iOS dark light mode not updating UIViewControlleriOS暗光模式不更新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){ 手动设置颜色并更改元素颜色。

标签: ios swift xcode12 ios-darkmode


【解决方案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
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-04
    • 2020-01-28
    • 2022-01-03
    • 2020-01-18
    • 1970-01-01
    • 2022-08-09
    相关资源
    最近更新 更多