切换数组中的UIbutton以选择/取消选择

时间:2019-03-31 19:00:59

标签: arrays swift for-loop uibutton selected

我有5个不同的按钮插座阵列。按下任何一个按钮时,应先选择该按钮,然后再取消选择数组中的所有其他按钮。

到目前为止,这是我的进度:

match.params.id

我首先选择按钮(使用items),然后遍历按钮数组以确定是否已选择它。如果未选中(表示未按下),则应将isSelected更改为false。

问题在于,每个被按下的按钮都会变为选中状态,然后在按下其他按钮后仍保持选中状态。

我该如何设置切换开关,以使点击的按钮FIRST被选中,然后所有其他按钮(除选中的按钮之外)被取消选择?请注意:由于运行的动画。

1 个答案:

答案 0 :(得分:2)

如果按钮的实例与select相同,则可以使用!==运算符来跳过该按钮,并且有多种方法

1)在for-in循环内

func toggleButton (select: UIButton) {
    select.isSelected = true

    let buttons: [UIButton] = [button1, button2, button3, button4, button5]
    for button in buttons {
        if button.isSelected && button !== select {
            button.isSelected = false
        }
    }
}

2)过滤数组中所需的按钮

func toggleButton (select: UIButton) {
    select.isSelected = true
    let buttons: [UIButton] = [button1, button2, button3, button4, button5]
    buttons.filter({ $0.isSelected && $0 !== select }).forEach { $0.isSelected = false }
}