我有一系列5个不同的按钮插座。按下任何按钮时,应首先选择该按钮,然后取消选择阵列中的每个其他按钮。
到目前为止,这是我的进展:
func toggleButton(select:UIButton) {
select.isSelected = true
let buttons = [button1, button2, button3, button4, button5]
for button in buttons as! [UIButton] {
if button.isSelected == true{
button.isSelected = true
} else {
button.isSelected = false
}
}
}
我首先选择按钮(使用select.isSelected = true
),然后迭代按钮数组以确定它是否已被选中。如果未选中(意味着未按下),则应将isSelected更改为false。
问题是每个按钮都会被按下更改为选中状态,然后在按下其他按钮后保持选中状态。
如何设置切换以便选择轻敲按钮FIRST,然后取消选择所有其他按钮(除了所选按钮)?注意:由于运行的动画,它按顺序排列很重要。
如果使用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 }
}