2

我正在删除一行,通过编写UITableView以下RowAnimation .left内容应该非常简单 tableView.deleteRows(at: [indexPath], with: .left),但是问题来了,UITableView它不尊重rowAnimation我正在传递(left, right,top,bottom,fade)的内容,它只显示正常的动画

我尝试了不同的解决方案,例如

beginUpdates()
deleteRows(at: indexPath, with: .left)
endUpdates()

CATransaction.begin()
CATransaction.setCompletionBlock({
    self.tableView.beginUpdates()
    self.myViewModel?.items?.remove(at: indexPath.row)
    self.tableView.deleteRows(at: [indexPath], with: UITableViewRowAnimation.top)
    self.tableView.endUpdates()
})
self.tableView.setEditing(false, animated: true)
CATransaction.commit()

self.tableView.beginUpdates()
// ...
self.tableView.endUpdates()
self.tableView.layer.removeAllAnimations()

我也尝试过使用performBatchUpdates,我很确定它是一种错误,因为它在以前版本的 iOS 中工作,我使用的是 iOS 13 和 swift 5

还有一些其他答案,例如Question1,但没有一个有效

4

0 回答 0