ios - traitCollectionDidChange 奇怪的行为
问题描述
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
super.traitCollectionDidChange(previousTraitCollection)
if traitCollection.hasDifferentColorAppearance(comparedTo: previousTraitCollection) {
print("changed")
}
}
iOS 13 应用程序只是进入后台而不更改模式(亮/暗),但会调用“打印”功能。是否可以确定模式真正改变的时刻?
谢谢你。
解决方案
我自己也观察到了这一点。
但是,一旦您进入后台,用户界面就会切换 - 它会立即切换回来。
我想你应该简单地跟随变化并根据需要做出反应。
您可以通过检查找到当前的界面样式traitCollection.userInterfaceStyle
。
例如:
let isDark = traitCollection.userInterfaceStyle == .dark
推荐阅读
- sql - 如果 sql select except 语句的结果没有返回记录,如何获取值 0?
- python - TypeError: Merge 只能在张量列表上调用,而不是 keras 中的单个张量
- python - 使用 python 在单个 Cloudwatch Synthetics Canary 中检查多个 URL
- powerbi - 如何创建一个度量值,该度量值是一个虚拟表中未包含在一个表中而包含在另一个表中的行
- c - 通过分配单个缓冲区并通过指向该缓冲区来设置 list1 和 list2 来替换两个 malloc 调用
- python - 将 python 字节对象写入 pgSQL bytea 列:字节字符串中的语法错误
- r - 如何以静态方式为特定单元格着色?
- android - 分页时 recyclerView 的 switch 语句行为
- javascript - Vue.js 无法读取 Props 中嵌套对象的 null/undefined 属性
- php - PHPMailer 显示奇怪的字符