我通过以下两种方法更新单元格的状态
func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
let model = dataSource.safeObjectAtIndex(indexPath.row)
model?.handleProgress { [weak cell] (callBackModel) in
guard let cell = cell as? Cell else { return }
cell.updateProgress(model: callBackModel)
}
}
func tableView(_ tableView: UITableView, didEndDisplaying cell: UITableViewCell, forRowAt indexPath: IndexPath) {
let model = dataSource.safeObjectAtIndex(indexPath.row)
model?.handleProgress { _ in }
}
通过以下方法删除单元格时,发现某些单元格停止更新。
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
guard editingStyle == .delete,
let model = dataSource.safeObjectAtIndex(indexPath.row) else { return }
dataSource.remove(at: indexPath.row)
tableView.deleteRows(at: [indexPath], with: .automatic)
model.cancel()
}
在模型中,我添加了一个计时器,每秒更改其progress属性。通过progressHandler调出。
如何删除这些ReusableCells而不影响其他单元的状态更新?