我有一个UIButton
已被禁用。 UIButton
旁边有一个图像作为图标。我认为是因为它已禁用,因此图像的色调是灰色的。
我已经尝试将情节提要中的按钮设置为自定义,然后在此处更改其颜色,这是行不通的。
我还尝试了以下代码:
@IBOutlet weak var drivenKmDisplay: UIButton!
let color = UIColor(red: 0/255, green: 22/255, blue: 60/255, alpha: 1)
func setDrivenKm(drivenKm: Int) {
drivenKmDisplay.isEnabled = false
let string = String(drivenKm) + " km"
drivenKmDisplay.setTitle(string, for: .disabled)
let icon = UIImage(named: "timeline")!
drivenKmDisplay.setImage(icon, for: .normal)
drivenKmDisplay.imageView?.contentMode = .scaleAspectFit
drivenKmDisplay.imageEdgeInsets = UIEdgeInsets(top: 0, left: -15, bottom: 0, right: 0)
drivenKmDisplay.tintColor = color
}
答案 0 :(得分:1)
在启用/禁用按钮时,您必须将按钮子类化才能更改tintColor
。
class MyButton: UIButton {
override var isEnabled: Bool {
didSet {
tintColor = isEnabled ? .blue : .red
}
}
}
要确保按钮中的图像变为所需的色调颜色,请将图像的渲染模式设置为alwaysTemplate
。您可以在代码中或资产目录中进行此操作。
let icon = UIImage(named: "timeline")?.withRenderingMode(.alwaysTemplate)
您还需要确保按钮在禁用时不会调整图像。
drivenKmDisplay.adjustsImageWhenDisabled = false