ios - tintColor 未在主题中更新为默认值
问题描述
我有一个自定义图标(.png 图像)作为条形按钮,我将使用 Theme.swift 文件为 1 个特定视图控制器设置资产颜色/背景颜色,但由于某种原因,色调颜色没有更新。
它目前是添加到我的资产文件夹时使用的深灰色,但根据我的 Theme.swift 应该显示为绿色。有谁知道这可能不会更新为新的默认绿色的原因:
在我正在寻找主题的视图控制器的 viewDidLoad 中,我添加了
Theme.current.apply()
这是我的 Theme.swift 文件,默认为绿色:
import UIKit
enum Theme: Int {
//1
case `default`, dark, graphical
//2
private enum Keys {
static let selectedTheme = "SelectedTheme"
}
//3
static var current: Theme {
let storedTheme = UserDefaults.standard.integer(forKey: Keys.selectedTheme)
return Theme(rawValue: storedTheme) ?? .default
}
var mainColor: UIColor {
switch self {
case .default:
print("/default")
return UIColor(red: 87.0/255.0, green: 188.0/255.0, blue: 95.0/255.0, alpha: 1.0)
case .dark:
return UIColor(red: 255.0/255.0, green: 115.0/255.0, blue: 50.0/255.0, alpha: 1.0)
case .graphical:
return UIColor(red: 10.0/255.0, green: 10.0/255.0, blue: 10.0/255.0, alpha: 1.0)
}
}
func apply() {
//2
UIApplication.shared.delegate?.window??.tintColor = mainColor
}
}
/default 甚至可以在我的控制台中打印,但颜色不会更新。
解决方案
推荐阅读
- javascript - 使用 axios 在 reactjs 中实现 HttpPut 请求
- duktape - 在 duktape 的致命处理程序中打印函数调用堆栈
- python - 如何使用 Python 从 R 程序中获取结果?
- list - 如何随机播放列表
- python - 如何使用我的代码将带有元组的多个列表转换为字典?
- apache-spark - 带有 Schema 的 Kafka JSON 数据在 PySpark 结构化流中为 Null。新架构上的输入不匹配
- r - 在 plotly 上缩放时保持文本大小相同 [R]
- angular - 一个 reducer 正在从 store 中删除另一个 reducer 的状态
- codeigniter - 未定义索引:codeigniter 中的电子邮件
- mysql - 为什么函数会减慢 mysql-view 中的查询速度?