首页 > 解决方案 > traitCollectionDidChange 奇怪的行为

问题描述

override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
    super.traitCollectionDidChange(previousTraitCollection)
    if traitCollection.hasDifferentColorAppearance(comparedTo: previousTraitCollection) {
        print("changed")
    }
}

iOS 13 应用程序只是进入后台而不更改模式(亮/暗),但会调用“打印”功能。是否可以确定模式真正改变的时刻?

谢谢你。

标签: iosswiftios13

解决方案


我自己也观察到了这一点。
但是,一旦您进入后台,用户界面就会切换 - 它会立即切换回来。
我想你应该简单地跟随变化并根据需要做出反应。
您可以通过检查找到当前的界面样式traitCollection.userInterfaceStyle
例如:
let isDark = traitCollection.userInterfaceStyle == .dark


推荐阅读