如果在tableview中选中复选框,如何保存所选数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果在tableview中选中复选框,如何保存所选数组相关的知识,希望对你有一定的参考价值。

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    return arraylist.count
}
 func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return 50.0
}

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

    var cell = PopupCellTableViewCell()

    cell  = (tableView.dequeueReusableCell(withIdentifier: "advnccell", for: indexPath) as? PopupCellTableViewCell)!

    cell.bgView = Utilities().viewborder(vw: cell.bgView )

    let dict = arraylist[indexPath.row] as! NSDictionary

    let cd  = dict.value(forKey: "Code") as? String ?? ""
    let desc  = dict.value(forKey: "Description") as? String ?? ""

    cell.tittleLbl.text = cd + " - " + desc

    if selectedRows.contains(indexPath)
    {
        cell.checkBtn.setImage(UIImage(named:"check"), for: .normal)
    }
    else
    {
        cell.checkBtn.setImage(UIImage(named:"uncheck"), for: .normal)
    }
    if (cell.checkBtn.currentImage?.isEqual(UIImage(named: "check")))!
    {
        UserDefaults.standard.set(cell.tittleLbl.text, forKey: "tittle")

    }

     cell.btnAction.tag = indexPath.row
    cell.btnAction.addTarget(self, action: #selector(checkBoxSelection(_:)), for: .touchUpInside)
    return cell
}



// checkbox selection
@objc func checkBoxSelection(_ sender:UIButton)
{
    let selectedIndexPath = IndexPath(row: sender.tag, section: 0)
    if self.selectedRows.contains(selectedIndexPath)
    {
        self.selectedRows.remove(at: self.selectedRows.index(of: selectedIndexPath)!)
    }
    else
    {
        self.selectedRows.append(selectedIndexPath)
    }
    self.tableVw.reloadData()
}

目前我只得到一个值,如果我选择了多个复选按钮,我怎么能得到

答案

修复这部分代码:

if selectedRows.contains(indexPath)
{
    cell.checkBtn.setImage(UIImage(named:"check"), for: .normal)
    UserDefaults.standard.set(cell.tittleLbl.text, forKey: "tittle")
}
else
{
    cell.checkBtn.setImage(UIImage(named:"uncheck"), for: .normal)
}

以上是关于如果在tableview中选中复选框,如何保存所选数组的主要内容,如果未能解决你的问题,请参考以下文章

如果在打字稿中选中复选框,如何阅读?

如果未选中复选框,如何提交 0,如果在 HTML 中选中复选框,如何提交 1 [重复]

如果在百里香中选中复选框,如何更改布尔值?

如果在 laravel 中选中了特定的复选框,如何要求一个字段?

获取 QListWidget 中选中复选框的索引

如何在加载了 JSON API 数据的 tableview 单元格中保存复选标记属性?