我有5个不同的按钮插座阵列。按下任何一个按钮时,应先选择该按钮,然后再取消选择数组中的所有其他按钮。
到目前为止,这是我的进度:
match.params.id
我首先选择按钮(使用items
),然后遍历按钮数组以确定是否已选择它。如果未选中(表示未按下),则应将isSelected更改为false。
问题在于,每个被按下的按钮都会变为选中状态,然后在按下其他按钮后仍保持选中状态。
我该如何设置切换开关,以使点击的按钮FIRST被选中,然后所有其他按钮(除选中的按钮之外)被取消选择?请注意:由于运行的动画。
答案 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 }
}