删除 Swift 4 时为单元格设置动画

Posted

技术标签:

【中文标题】删除 Swift 4 时为单元格设置动画【英文标题】:Animate a cell while removing Swift 4 【发布时间】:2018-01-31 22:15:46 【问题描述】:

我正在开发一个应用程序,我正在使用一些 tableView 单元格。我正在对单元格执行拖放操作,我想在目标位置删除一个单元格。我正在成功地做到这一点。但在删除该单元格之前,我想为该单元格设置动画。我怎样才能做到这一点。以下是我执行此操作的方法。

override func tableView(_ tableView: UITableView, moveRowAt sourceIndexPath: IndexPath, to destinationIndexPath: IndexPath) 

    let movedCell = self.colorArray[destinationIndexPath.row]

    self.colorArray.remove(at: destinationIndexPath.row)

    self.tableView.reloadData()


我想在那个movedCell上执行一些动画。 我该怎么做?

【问题讨论】:

【参考方案1】:

这是删除期间动画tableview 的默认系统。

override func tableView(_ tableView: UITableView, moveRowAt sourceIndexPath: IndexPath, to destinationIndexPath: IndexPath) 
   self.tableView.deleteRows(at: [destinationIndexPath], with: .left)
    let movedCell = self.colorArray[destinationIndexPath.row]
    self.colorArray.remove(at: destinationIndexPath.row)

【讨论】:

当我使用它时,我的应用程序崩溃了,说Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid update: invalid number of rows in section 0. The number of rows contained in an existing section after the update (10) must be equal to the number of rows contained in that section before the update (10), plus or minus the number of rows inserted or deleted from that section (0 inserted, 1 deleted) and plus or minus the number of rows moved into or out of that section (0 moved in, 0 moved out). 你知道为什么会这样 我刚刚更新了我的答案。请再试一次。另一个destinationIndexPath 是您尝试删除的实际索引路径?

以上是关于删除 Swift 4 时为单元格设置动画的主要内容,如果未能解决你的问题,请参考以下文章

在选择时为 UICollectionView 单元格设置动画

在选择时为 uicollectionview 单元格设置动画

UICollectionVIew:在滚动时为单元格设置动画

UICollectionVIew:在视图滚动时为单元格设置动画

滑动删除 UITableView 单元格动画在 swift 2 中不起作用

在 UICollectionView 中为特定单元格设置动画