gpt4 book ai didi

ios - TintColor 未更新为主题中的默认值

转载 作者:行者123 更新时间:2023-11-30 11:11:30 26 4
gpt4 key购买 nike

我有一个自定义图标(.png 图像)作为栏按钮,我将使用 Theme.swift 文件为 1 个特定 View Controller 设置资源颜色/背景颜色,但由于某种原因,色调颜色不是正在更新。

当前将其添加到我的 Assets 文件夹时使用的是深灰色,但根据我的 Theme.swift 应显示为绿色。有谁知道为什么这可能不会更新为新的默认颜色绿色的原因:

enter image description here

在我正在寻找主题的 View Controller 的 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 甚至在我的控制台中打印,但颜色没有更新。

最佳答案

这里,图像renderingMode有问题。如果您想在图像上应用tintColor,则必须使用图像渲染模式alwaysTemplate

可以使用两种方法设置图像渲染模式。

以编程方式

if let myImage = UIImage(named: "myImage") {
let tintableImage = myImage.withRenderingMode(.alwaysTemplate)
imageView.image = tintableImage
}

来自 Assets

enter image description here

关于ios - TintColor 未更新为主题中的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52143831/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com