我有以下问题。当我从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()
}
}
这是一个破碎动画的图像:
答案 0 :(得分:3)
答案 1 :(得分:0)
我在这方面遇到了很多麻烦。将完成(真)移动到顶部而不是底部解决了问题。希望它可以帮助那里的人!
alert.addAction(UIAlertAction(title: "Delete", style: .destructive) { (action) in
completion(true) // *** PUT THIS HERE!!! ****
self.searchFoodView.beginUpdates()
self.foodMachine.deleteFood(at: indexPath.row - 1)
self.searchFoodView.deleteRows(at: [indexPath], with: .fade)
self.searchFoodView.endUpdates()
})