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的主要内容,如果未能解决你的问题,请参考以下文章

基于零参考深度曲线估计的暗光图像增强

如何更新 Apple 地图中的路线 - iOS 13.0 中的 Xcode Swift 5?

如何在不导入第一个 UIViewController 类的情况下从 UINavigationController 中的另一个 UIViewController 手动释放 UIViewControlle

让照片更具立体感

论文解读:手机拍照暗光成像

图像增强基于matlab双边滤波retinex算法暗光图像增强含Matlab源码 2305期