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