【发布时间】:2020-08-29 10:49:04
【问题描述】:
在我的tableView 中,我删除了一行,然后我需要重新加载整个表以重新计算一些值。最好的方法是什么?由于deleteRows 没有完成处理程序,并且根据SO 上的this comment,我不应该在删除一行后立即调用tableView.reloadData()。
func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
let deleteAction = UIContextualAction(style: .normal, title: "Delete") { [weak self] (action, view, completion) in
guard let weakSelf = self else { return }
CoreDataManager.manager.deleteActivity(activity: weakSelf.sortedActivites[indexPath.row])
weakSelf.sortedActivites.remove(at: indexPath.row)
tableView.deleteRows(at: [indexPath], with: .automatic)
tableView.reloadData()
completion(true)
}
deleteAction.backgroundColor = UIColor.red
return UISwipeActionsConfiguration(actions: [deleteAction])
}
【问题讨论】:
标签: ios objective-c swift xcode uitableview