我有一系列按钮,它们的作用类似于选择器菜单。我希望当我按下其中一个按钮时,它会更改其backgroundColor,而所有其他按钮都恢复为其初始颜色。
这是我目前拥有的
@IBAction func optionSelected(_ sender: UIButton) {
for button in selectButtons {
if button.tag == sender.tag {
if !button.isSelected {
button.backgroundColor = palette.importantColorObject()
button.isSelected = true
} else {
button.backgroundColor = palette.clearGrayColorObject()
button.isSelected = false
}
}
}
但是我不知道如何使只有最后选择的按钮具有此importantColorObject
,而且我还遇到这样的问题:选择按钮时,不仅背景颜色会改变,而且看起来也就像选择内部文本(蓝色)一样。我该如何解决?
预先感谢
答案 0 :(得分:0)
这将解决您唯一的一个选择问题,这将确保您始终具有选定的按钮,除非您取消选择选定的按钮,并且所有按钮都变为灰色或未选定状态。
@IBAction func optionSelected(_ sender: UIButton) {
selectButtons.forEach { (button) in
button.backgroundColor = palette.clearGrayColorObject()
button.isSelected = false
}
sender.backgroundColor = palette.importantColorObject()
sender.isSelected = true
}
如果您也想使用该功能
@IBAction func optionSelected(_ sender: UIButton) {
if sender.isSelected {
sender.backgroundColor = palette.clearGrayColorObject()
sender.isSelected = false
} else {
selectButtons.forEach { (button) in
button.backgroundColor = palette.clearGrayColorObject()
button.isSelected = false
}
sender.backgroundColor = palette.importantColorObject()
sender.isSelected = true
}
}
希望这会有所帮助。