在数组中切换UI按钮以选择/取消选择

问题描述 投票:1回答:1

我有一系列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,然后取消选择所有其他按钮(除了所选按钮)?注意:由于运行的动画,它按顺序排列很重要。

arrays swift for-loop uibutton selected
1个回答
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 }
}
© www.soinside.com 2019 - 2024. All rights reserved.