我在tableview cell
中添加了一个“删除”按钮,它在警报模式下显示alertController
。在“destroyAction”中,我删除数据并从表中删除行。
let destroyAction = UIAlertAction(title: "Delete", style: .destructive) { (action) in
let indexPath = tableView.indexPath(for: cell!)
self.numbers.remove(at: (indexPath?.row)!)
tableView.deleteRows(at: [indexPath!], with: .right)
}
}
问题是删除了没有动画的行。
但是当我用DispatchQueue.main.async {}
将其包裹起来时,动画就会起作用。
let destroyAction = UIAlertAction(title: "Delete", style: .destructive) { (action) in
let indexPath = tableView.indexPath(for: cell!)
DispatchQueue.main.async {
self.numbers.remove(at: (indexPath?.row)!)
tableView.deleteRows(at: [indexPath!], with: .right)
}
}
有人可以解释为什么这会使动画工作,以及是否有更简单的方法来实现这一点。