我正在动态地将自定义单元格添加到UITableView
,我希望每个单元格都有一个按钮,可以从数据结构中删除该单元格并重新加载视图。
didSelectRowAt indexPath
可以使用indexPath.section
和indexPath.row
从我的数据结构中删除元素,然后重新加载表,但是如何在触摸单元格内的按钮时执行此操作?
有人建议将逻辑移动到按钮的touchUpInside,但是我该怎么做呢?我如何接收按下按钮的单元格的部分和行,以了解要从数据结构中删除哪个元素?
您可以将 indexPath 变量存储在自定义单元格对象中,并在控制器上调用函数。您需要在函数cellForRow(at:)
设置索引路径和委托。
protocol CellButtonProtocol: class {
func cellButtonClicked(indexPath: IndexPath?)
}
class CustomCell: UITableViewCell {
weak var delegate: CellButtonProtocol?
var indexPath: IndexPath?
func buttonClick() {
delegate?.cellButtonClicked(indexPath: indexPath)
}
}