UITableViewCell 删除滑动动画丑陋

Elm*_*ner 2 uitableview ios swift

我有以下问题。当我使用“滑动删除”从我的 UITableView 中删除 UITableViewCells 时,我看到了 UITableView 的丑陋行为。无论我在 deleteRows 方法中选择哪种动画,所有删除都会导致相同的奇怪行为。

这是我删除单元格的代码

func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
    if editingStyle == .delete {
        print("Deleted")

        self.tvItems.beginUpdates()

        if(indexPath.section == 0){
            Shoppingcart.shared.removeItemForId(ident: indexPath.row)
        }else if (indexPath.section == 1){
            Shoppingcart.shared.serviceContent.remove(at: indexPath.row)
        }

        if let parent = self.parent as? CollectionViewController{
            parent.collectionView?.reloadData()
        }
        self.tvItems.deleteRows(at: [indexPath], with: .fade)

        self.tvItems.endUpdates()

    }
}  
Run Code Online (Sandbox Code Playgroud)

这是损坏的动画的图像:

在此处查看损坏的动画

Elm*_*ner 5

我找到了解决我的问题的方法。tableviewcell 高度估计设置为自动。我确实将高度设置为与行高相同,并且损坏的动画消失了。

破碎动画的设置:

错误的

工作动画的设置:

对