ios - 单击不同按钮时删除按钮上的选定状态(Swift)

标签 ios swift uibutton touch-up-inside

我试图找出在 Swift 中切换按钮状态的逻辑。这个概念很简单:

  • 屏幕上有三个按钮。
  • 当我点击一个按钮时,它会切换到“已选择”状态
  • 当我点击另一个按钮时,我希望它将当前选中的按钮切换到“未选中”状态,并将新按钮切换到“选中”状态

我在 TouchUpInside 上为屏幕上的按钮使用了这个功能,但目前可以将它们全部“选中”,但我不想要:

func highlightTrack(sender:UIButton){
    if(!sender.selected){
        sender.selected = true
        sender.backgroundColor = UIColor.blueColor()
    } else {
        sender.selected = false
    }
}

我来自 Javascript 世界,所以我可能只是把我的逻辑搞混了,但是有没有办法检测屏幕上当前选定的按钮并将它们关闭,或者这更接近于“单选”按钮类型逻辑?

我的问题是,这些按钮是根据某些条件以编程方式创建的,所以从技术上讲,我不应该像那样即时创建 IBOutlets,对吗(IB 意思是“Interface Builder”?)?

感谢您的帮助!

最佳答案

func highlightTrack(sender:UIButton) {
    if sender.isSelected {
        return
    }

    btn1.isSelected = false
    btn2.isSelected = false
    sender.isSelected = true
}

关于ios - 单击不同按钮时删除按钮上的选定状态(Swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35125473/

相关文章:

swift - 如何仅使用文本字段使按钮可单击到另一个 View Controller

Swift 计算属性模板?

iphone - 如何在按钮中存储字符串值(不能使用标签。)

ios - 通过 UIButton 将数据传递到另一个 Controller 上的 UITableView

objective-c - 使类的一部分可重用的设计模式的名称是什么。

ios - 在 Swift 中重复播放声音文件?

swift - 如何使用键值编码访问父类(super class)属性?

swift - 没有自定义单元格的 UITable 中的单独按钮

ios - 如何从下往上填充 UITableView?

iOS 应用程序提交 - 测试 url