gpt4 book ai didi

swift - 以编程方式选择 tableview 中的所有单元格,以便下次按下它们时调用 didDeselect

转载 作者:可可西里 更新时间:2023-11-01 01:21:31 28 4
gpt4 key购买 nike

我有一个 TableView ,其中包含一堆不同的部分和每个部分中的动态行数。在第一部分中,我有一个用于“全选”的单元格。有没有一种快速简便的方法来手动选择所有单元格,所以他们的代码 didSelect触发器,下次用户按下其中一个单元格时,它会触发它们的 didDeselect ?我现在能想到的唯一方法是遍历所有部分,并在每个部分中循环 0 < indexPath.row < section's data array count并调用

self.tableView.selectRow(at: indexPath, animated: false, scrollPosition: UITableViewScrollPosition.none)
self.tableView(self.tableView, didSelectRowAt: indexPath)

但是有没有办法不用那么多循环呢?

最佳答案

;没有循环就没有办法做到这一点。您可以通过使用一种方法扩展 UITableView 来让自己更轻松一些。应该这样做:

extension UITableView {

func selectAll(animated: Bool = false) {
let totalSections = self.numberOfSections
for section in 0 ..< totalSections {
let totalRows = self.numberOfRows(inSection: section)
for row in 0 ..< totalRows {
let indexPath = IndexPath(row: row, section: section)
// call the delegate's willSelect, select the row, then call didSelect
self.delegate?.tableView?(self, willSelectRowAt: indexPath)
self.selectRow(at: indexPath, animated: animated, scrollPosition: .none)
self.delegate?.tableView?(self, didSelectRowAt: indexPath)
}
}
}

}

只需将其添加到根级别的任何 Swift 文件中,然后您就可以在任何 UITableView 上调用 tableView.selectAll()

关于swift - 以编程方式选择 tableview 中的所有单元格,以便下次按下它们时调用 didDeselect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43746664/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com