Флажок UITableView (выберите кнопку при нажатии другой кнопки) - PullRequest
0 голосов
/ 27 мая 2018

У меня есть кнопка с именем btnChk2 .Я хочу, чтобы когда пользователь нажимал btnChk2 , чтобы была выбрана кнопка btnChk .Вот мой код, то, что происходит в моем коде, заключается в том, что при нажатии btnChk2 btnChk2 выбирается, а не btnChk .

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCell(withIdentifier: "CheckBoxCell")

    if let lbl = cell?.contentView.viewWithTag(1) as? UILabel {
        lbl.text = "item-\(1)"
    }

    if let btnChk = cell?.contentView.viewWithTag(2) as? UIButton {
        btnChk.addTarget(self, action: #selector(checkboxClicked(_ :)), for: .touchUpInside)
    }

    if let btnChk2 = cell?.contentView.viewWithTag(100) as? UIButton {
        btnChk2.addTarget(self, action: #selector(checkboxClicked(_ :)), for: .touchUpInside)
    }

    return cell!
}

@objc func checkboxClicked(_ sender: UIButton) {
    sender.isSelected = !sender.isSelected
}

1 Ответ

0 голосов
/ 27 мая 2018

вы можете Handel Work лучше, чем это, вы должны делать эту логику в вашем cell и CellforRow только для управления состоянием

В любом случае вы можете сделать это так

 @objc func checkboxClicked(_ sender: UIButton) {

        guard let cell = sender.superview?.superview as? UITableViewCell else {
            return
        }

        if  sender.tag == 2 {

            if let btnChk2 = cell.contentView.viewWithTag(100) as? UIButton {
                if btnChk2.isSelected == true {
                    btnChk2.isSelected = false

                }else{
                    btnChk2.isSelected = true

                }
            }
            sender.isSelected = false
        }else if sender.tag == 100{
            if let btnChk = cell.contentView.viewWithTag(2) as? UIButton {
                if btnChk.isSelected == true {
                    btnChk.isSelected = false

                }else{
                    btnChk.isSelected = true
                }
            }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...