删除行后更新indexPath值

问题描述

我有一个喜欢的电影列表。在表格单元格中,有一个按钮用于从“收藏夹”列表中删除电影。所以我想用tableView.deleteRows对其进行动画处理。但是,如果我从屏幕顶部删除一行,则其他行向上。这是正常现象,但是当我从屏幕顶部删除该行时,列表中已经显示的其他单元格没有更新indexPath。我为tableView.reloadData分配了asyncAfter方法来解决此问题,但我认为这可能会导致OS崩溃。因为我强迫主线程在延迟后重新加载数据。这对OS真的有问题,我该怎么办?

示例问题:

如果我删除索引为0的电影,则所有上升的电影。因此,在删除之前,1个索引的影片应具有0个索引,但没有。如果我尝试删除一个新的0索引电影,它将删除另一部电影。

Work example without tableView.reloadData()

这是我的代码//工作正常,但我认为asyncAfter是一个问题

cell.deleteButtonActionBlock = {
    FavouritesHandler.shared.deleteMovie(movie)
    self.tableView.deleteRows(at: [indexPath],with: .automatic)
    DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) {
        self.tableView.reloadData()
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)