我正在删除一行,通过编写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,但没有一个有效