我想在每次用户选择一个按钮时将我的 UIButton 的文本颜色更改为 .orange 以显示选择了哪个按钮。如果选择了另一个按钮,它会将颜色改回 .white。我尝试使用下面的代码对按钮进行子类化,但没有任何改变。使用 Storyboard并在检查器中更改颜色属性也不起作用。我错过了什么?
class HighlightedButton: UIButton {
override var isHighlighted: Bool {
didSet {
backgroundColor = isHighlighted ? .orange : UIColor(red: 44/255, green: 62/255, blue: 80/255, alpha: 1.0)
}
}
override var isSelected: Bool {
didSet {
titleLabel?.textColor = isSelected ? .orange : .white
}
}
最佳答案
您可以简单地为 stackView
中的所有 buttons
创建一个 Outlet Collection
。
添加一个@IBAction
并将所有按钮
连接到它。在此方法中,设置点击按钮
的选择
。并根据选择更改 Outlet Collection
中所有 buttons
的 textColor
,即
@IBOutlet var buttons: [UIButton]!
@IBAction func onTapButton(_ sender: UIButton) {
buttons.forEach {
$0.isSelected = ($0 == sender)
$0.setTitleColor((sender.isSelected) ? .orange : .white, for: .normal)
}
}
关于ios - 为什么当我点击它们时,我的按钮的文本颜色没有改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56835065/