swift - UIButton 集合为最后按下的按钮设置颜色

标签 swift collections background uibutton

我有一系列按钮,它们的作用类似于选择器菜单。我希望当我按下其中一个按钮时,它会更改其背景颜色,并且所有其他按钮都会返回到其初始颜色。

这就是我现在所拥有的

 @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 并且我还遇到一个问题,当我选择该按钮时,不仅其背景颜色发生变化,但看起来也像是内部文本被选中(蓝色)。我该如何解决这个问题?

提前致谢

最佳答案

这将解决您唯一的选择问题,这将确保您始终有一个选定的按钮,除非您取消选择选定的按钮并且所有按钮都变为灰色或未选定状态。

@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
   }
}

希望这会有所帮助。

关于swift - UIButton 集合为最后按下的按钮设置颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55211056/

相关文章:

swift - 如何从核心数据中的关系中获取值(swift)

Servlet 中的 java.util.ConcurrentModificationException

java - ArrayList<class> 交换方法

java - 哪个集合最适合存储键值对,但我必须同时搜索键和值

ios - 当音频工作未激活时禁用应用程序的后台模式

android : when using MediaPlayer to play background music, 音效过早停止

ios - 关于从网络数据中提取信息的建议(Swift)

swift - UIDatePicker 15 分钟增量 Swift

ios - 如何在 Swift 应用程序中全局设置自定义 header ?

iphone - AVAudioPlayer 后台任务不起作用 [iOS]