如何通过自定义单元格中的按钮删除具有tableView的本机动画的行?
答
我找到了一个很好的解决方案,使用了自定义的代表和 TableViewDataSource方法!
我在我的自定义单元格类具有协议的工作,像这样:
protocol MyCellDelegate: class {
func didDelete(cell: MyCell)
}
在我的自定义单元格类我做了这个:
class MyCell: UITableViewCell {
weak var delegate: MyCellDelegate?
@IBAction func deleteButtonTapped(_ sender: Any) {
delegate?.didDelete(cell: self)
}
}
在我的ViewController我做了代表和数据源实现:
extension ViewController: UITableViewDataSource {
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
switch editingStyle {
case .delete:
tableView.beginUpdates()
tableView.deleteRows(at:[indexPath], with: .fade)
tableView.endUpdates()
default:
break
}
}
}
extension ViewController: MyCellDelegate {
func didDelete(cell: MyCell) {
guard let index = tableView.indexPath(for: cell) else {
return
}
myArray?.remove(at: index.row)
self.tableView(self.tableView, commit: .delete, forRowAt: index)
}
}
嗨Renato,并欢迎堆栈溢出。你能否更好地解释你想要做什么,并显示你到目前为止的代码。 – boidkan
搜索删除单元格tableview动画 –
相关:https://stackoverflow.com/questions/40156274/deleting-a-row-from-a-uitableview-in-swift-3 –