ios - 突出显示要按下的按钮,并取消突出显示未按下的按钮SWIFT

标签 ios swift uibutton highlight

我有三个连接到相同IBAction的按钮。他们都有自己的外表。
我发现了如何使按钮在按下时变为突出显示,而在用户按下另一个按钮时不突出显示。他们是编写代码的更好方法吗?这是我正在使用的:

@IBAction func tipChanged(_ sender: UIButton) {
    zeroPCTButton.isSelected = false 
    tenPCTButton.isSelected = false 
    twentyPCTButton.isSelected = false 
    sender.isSelected = true
}

我问的原因是因为我可以创建一个具有上千个按钮的应用程序,而且我不想暴力破解数千次

最佳答案

我们可以通过以下方式取消突出未按下的UIButton

@IBAction func buttonAction(_ sender: Any) {

        let the_tag = (sender as AnyObject).tag;
        let button = self.view.viewWithTag(the_tag!) as? UIButton
        button?.isSelected = true
        button?.backgroundColor = UIColor.white
        button?.setTitleColor(UIColor.black, for: .normal)

        // Create a list of all tags
        let allButtonTags = [1, 2, 3, 4, 5]
        let currentButtonTag = (sender as AnyObject).tag

           allButtonTags.filter { $0 != currentButtonTag }.forEach { tag in
               if let button = self.view.viewWithTag(tag) as? UIButton {
                   // Deselect/Disable these buttons
                   button.backgroundColor = #colorLiteral(red: 0.80803, green: 0.803803, blue: 0.805803, alpha: 1)
                   button.setTitleColor(UIColor.darkGray, for: .normal)
                   button.isSelected = false

               }
           }
    }

关于ios - 突出显示要按下的按钮,并取消突出显示未按下的按钮SWIFT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61649369/

相关文章:

ios - 填充2个不同的PickerView

swift - 间隔中的 GPS ping

ios - 在字符串末尾添加一个字符后,会添加一个不需要的空格。我该如何删除这个?

ios - 带有 < 符号的自定义后退按钮

ios - 我如何检测在文本字段的键盘上按下了哪个键?

ios - 向 UITableViewCell 中的 detailTextLabel 添加多行

objective-c - Swift isa 指针重映射或其他支持的方法调配

swift - 如何在 Swift 中更改 TableView 单元格中 UIButton 的颜色?

ios - Swift - 按下时为按钮创建径向线

objective-c - 我需要在释放之前从 UIButton 中删除目标吗?