swift - 如何在变量中检测 iOS 设备外观更新?
问题描述
我有一个字符串,它从检测设备设置的外观的deviceColorScheme
变量中获取它的值。colorScheme
它一直有效,直到设备的外观在设置或控制中心中切换并且colorScheme
不会更新。
@Environment(\.colorScheme) var colorScheme: ColorScheme
let deviceColorScheme: String = "\(colorScheme)"
我的问题是 - 我可以检测到这种变化吗?如果可以,怎么做?
解决方案
var isDark = false
if #available(iOS 13.0, *)
{
isDark = UIScreen.main.traitCollection.userInterfaceStyle == .dark ? true : false
}
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
if #available(iOS 13.0, *) {
isDark = previousTraitCollection?.userInterfaceStyle == .dark ? true : false
} else {
print("Light")
isDark = false
}
}
推荐阅读
- asp.net - ASP.NET Web 应用程序未在 Global.asax 中执行代码
- jquery - 获取元素内的值在空的情况下给我双倍 \n
- git - 如何重置 Git LFS 带宽?
- vue.js - 是否可以将“标签位置:顶部”仅应用于元素 UI 中的一个表单项
- r - 这是否可以在我的主机上安装 R 并在那里执行闪亮的应用程序,所以它可以显示在我的域上?
- html - webpack 4 哈巴狗加载器图像 url 不正确
- python - 为什么创建用户时密码没有散列?
- javascript - 如何在innerhtml的下拉列表中预取存储值并在选项未更改的情况下按原样提交?
- list - Flutter -Listview内的复选框
- java - 睡眠中断异常:java.lang.InterruptedException:睡眠中断 - 如何让浏览器超时 40 分钟