我跟随this answer获得了那个漂亮的褪色删除单元格。目前,当我滑动删除时,它是尖锐的,突然的和丑陋的。当删除单元格时,其他应用程序会有很好的淡入淡出。
在我的应用中,单元格并未真正删除,数据已删除:
Swift 3,func editingStyle:
let tableSection = sections[sortedSections[indexPath.section]]
let tableItem = tableSection![indexPath.row]
// Removes item from array:
self.incomesDictionary.removeValue(forKey: tableItem.incomeId)
// Reloading the table data:
self.tableView.reloadData()
当我在self.tableView.deleteRows(at: [indexPath], with: .fade)
上方添加...reloadData()
时,我收到错误消息:
以NSException类型的未捕获异常终止
如果我使用tableSection?.remove(at: indexPath.row)
更新功能,它仍然会崩溃。有任何提示可以获得平稳的效果吗?
修改
我有一个以编程方式分组的单元格,添加.fade
后我得到的错误是:
由于未捕获的异常终止应用程序' NSInternalInconsistencyException',原因:'尝试从第0部分删除第0行,但在更新之前只有0部分'
答案 0 :(得分:0)
Swift 5.0
https://www.hackingwithswift.com/example-code/uikit/how-to-swipe-to-delete-uitableviewcells
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == .delete {
self.myArray.remove(at: indexPath.row)
tableView.deleteRows(at: [indexPath], with: .fade)
}
}
答案 1 :(得分:-1)
试试这个:
self.tableView.beginUpdates()
self.tableView.deleteRows(at: [indexPath], with: .fade)
self.tableView.endUpdates()
这将为动画准备tableView