0

我选择了一些tableView单元格并将其存储在 中UserDefaults,还显示了我选择的内容。现在在添加一个清除按钮并取消选择所有选定的行并清空选定的行array之后table reloadAll()。它不是动态显示的吗?如何从按钮操作中清除选择并tableView立即显示没有选择?

  @IBAction func clearSelection(_ sender: Any) {

//        self.sellerTableView.reloadInputViews()
//
//        self.sellerTableView.deselectRow(at: , animated: true)

这个不行!

        if let aRow = self.sellerTableView.indexPathForSelectedRow {
            self.sellerTableView.deselectRow(at: aRow, animated: true)
        }
//        self.userSelectedSellers.removeAll()

        self.sellerTableView.reloadData()
    }
4

2 回答 2

1

这是从 tableView 取消选择所有单元格的方法:

for cell in tableView.visibleCells {
    cell.setSelected(false, animated: true)
}

tableView.reloadData()
于 2018-07-12T06:34:33.447 回答
0

如上所述,您有一个具有多项选择的表格视图,您应该首先创建一个array添加您选择的 indexPaths 的表格,然后编写 -

if indexArray.contains(indexPath.row) {
*// then set the table cell as selected*
}
else {
*// remove the table view selection*
}

您可以根据需要选择和取消选择表格单元格。喜欢改变颜色或放置一个刻度线..任何想法..

然后你在 didSelect Delegate 中做这样的事情 -

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

if indexArray.contains(indexPath.row) {
        if let indexForRemove = indexArray.index(of: indexPath.row) {
            indexArray.remove(at: iindexForRemove)
        }
    }
    else {
        indexArray.append(indexPath.row)
    }

// 现在重新加载您的表格视图--- 完成

于 2018-07-12T07:10:42.050 回答