【发布时间】:2019-11-18 17:39:57
【问题描述】:
我正在使用 Codable 将我的 JSON 中的数据加载到 UITableView 中。在这里,Tableview 我实现了多个单元格选择复选标记选项。我将两个数组用于正常数据加载,另一个用于过滤数组数据。在这里,每一个选择我都附加isSelected 用于复选标记持久性。带有复选标记单元格选择的正常数据加载工作正常。但是,每当我尝试搜索并选择显示在搜索结果中的复选标记时,但在清除搜索数据后,我无法在 tableview 中看到搜索选择的复选标记。
我使用两个数组,一个用于normal 数据加载另一个用于tableview search 数据。搜索清楚后如何实现checkmark可用性。
我的代码
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return searching ? filteredData.count : membersData.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell:listCustomCell = self.tableView.dequeueReusableCell(withIdentifier: cellReuseIdentifier) as! listCustomCell
let textForRow = searching ? filteredData[indexPath.row] : membersData[indexPath.row]
cell.empName.text = textForRow.firstname
cell.designationLabel.text = textForRow.designation
return cell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
self.tableView.deselectRow(at: indexPath, animated: true)
if searching == false {
membersData[indexPath.row].isSelected.toggle()
} else {
filteredData[indexPath.row].isSelected.toggle()
}
tableView.reloadRows(at: [indexPath], with: .none)
let selectedAreas = membersData.filter{$0.isSelected}
let selectedfilterAreas = filteredData.filter{$0.isSelected}
print("\(selectedAreas)")
print("\(selectedfilterAreas)")
}
【问题讨论】:
-
添加你的 cellForRowAt 函数,这是罪魁祸首,可能出队细胞是问题!
-
@ShivamGaur 我更新了我的问题。你能检查一下吗?
标签: ios swift uitableview