将数组中的 UIbuttons 切换为 select / deselect
Toggling UIbuttons in an array to select / deselect
我有一组 5 个不同的按钮插座。当按下任何按钮时,该按钮应该首先被 selected,然后数组中的每个其他按钮都应该被 deselected。
这是我目前的进度:
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 按钮(使用 select.isSelected = true
),然后遍历按钮数组以确定它是否 selected。如果它不是 selected(意味着它没有被按下),那么它应该将 isSelected 更改为 false。
问题是每个按下的按钮都会变为 selected,然后在按下其他按钮后仍然保持 selected。
我如何设置开关,使点击的按钮首先得到 selected,然后所有其他按钮(selected 按钮除外)得到 deselected? 注意:由于要运行动画,因此按顺序排列很重要。
如果按钮与 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({ [=11=].isSelected && [=11=] !== select }).forEach { [=11=].isSelected = false }
}
我有一组 5 个不同的按钮插座。当按下任何按钮时,该按钮应该首先被 selected,然后数组中的每个其他按钮都应该被 deselected。
这是我目前的进度:
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 按钮(使用 select.isSelected = true
),然后遍历按钮数组以确定它是否 selected。如果它不是 selected(意味着它没有被按下),那么它应该将 isSelected 更改为 false。
问题是每个按下的按钮都会变为 selected,然后在按下其他按钮后仍然保持 selected。
我如何设置开关,使点击的按钮首先得到 selected,然后所有其他按钮(selected 按钮除外)得到 deselected? 注意:由于要运行动画,因此按顺序排列很重要。
如果按钮与 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({ [=11=].isSelected && [=11=] !== select }).forEach { [=11=].isSelected = false }
}