Swift 控制多个按钮的最佳方法

Swift 控制多个按钮的最佳方法,swift,ibaction,Swift,Ibaction,我是斯威夫特的新手,如果这是个愚蠢的问题,请原谅我。我的程序中有一个按钮列表。单击任何按钮时,相同的操作将应用于该特定按钮(更改背景图片) 最初,我为每个按钮创建了一个单独的按钮和单独的iAction。我觉得那太愚蠢了。在这里搜索之后,我了解到我可以为按钮创建一个数组,并将它们链接到同一个操作。因此产生了以下代码 @IBAction func unselectPai(sender: UIButton) { switch sender{ case pai[0]:

我是斯威夫特的新手,如果这是个愚蠢的问题,请原谅我。我的程序中有一个按钮列表。单击任何按钮时,相同的操作将应用于该特定按钮(更改背景图片)

最初,我为每个按钮创建了一个单独的按钮和单独的iAction。我觉得那太愚蠢了。在这里搜索之后,我了解到我可以为按钮创建一个数组,并将它们链接到同一个操作。因此产生了以下代码

@IBAction func unselectPai(sender: UIButton) {
    switch sender{
        case pai[0]:
        unselectPaiHelper(0)
        case pai[1]:
        unselectPaiHelper(1)
        case pai[2]:
        unselectPaiHelper(2)
        case pai[3]:
        unselectPaiHelper(3)
        case pai[4]:
        unselectPaiHelper(4)
        case pai[5]:
        unselectPaiHelper(5)
        case pai[6]:
        unselectPaiHelper(6)
        case pai[7]:
        unselectPaiHelper(7)
        case pai[8]:
        unselectPaiHelper(8)
        case pai[9]:
        unselectPaiHelper(9)
        case pai[10]:
        unselectPaiHelper(10)
        case pai[11]:
        unselectPaiHelper(11)
        case pai[12]:
        unselectPaiHelper(12)
        case pai[13]:
        unselectPaiHelper(13)
        default: return
    }
}
然而,我觉得应该有更简单的方法来做到这一点,并希望能有一些指针。

像这样:

@IBAction func unselectPai(sender: UIButton) {
    if let ix = pai.indexOf(sender) {
        unselectPaiHelper(ix)
    }
}
像这样:

@IBAction func unselectPai(sender: UIButton) {
    if let ix = pai.indexOf(sender) {
        unselectPaiHelper(ix)
    }
}

应添加一个
断路器
,以模拟Swift的
开关箱
,因为箱子不会掉入下一个;一个案例匹配后,除非您指定
故障排除
,否则不能评估其他案例;见@Robert,没什么可打破的。没有循环。这是一个单行程序。应添加一个
中断
,以模拟Swift的
开关箱
,因为箱子不会落入下一个;一个案例匹配后,除非您指定
故障排除
,否则不能评估其他案例;见@Robert,没什么可打破的。没有循环。这是一条单行线。