我有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 }
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句