我在每个表视图单元格上都有一个手势识别器,当他们刷一个时,我希望我的委托通知表格视图(或者如果有更好的方式没有代表,那么)可以删除它。但我如何知道单元格的indexPath
或其他什么,以便可以删除?
答案 0 :(得分:7)
使用委托是一个很好的模式。您的自定义单元类应定义协议和委托属性。视图控制器应将自身设置为单元的委托,视图控制器应实现单元的协议方法。确保协议方法的一个参数是单元格。
如果需要,视图控制器可以向表视图询问单元格的索引路径。单元格不需要知道其索引路径。由于可以添加/删除行和部分,因此单元格被告知其索引路径是不正确的,因为它可以随时更改。
答案 1 :(得分:1)
让您的单元格使用self
调用其委托,然后在控制器中使用UITableView
的{{1}}来查找相应的索引路径。
获得路径后,您可以使用indexPathForCell:
删除单元格。请记住对数据源进行相应的更改!
deleteRowsAtIndexPaths:withRowAnimation:
答案 2 :(得分:0)
获取superView,直到该类为UITableView。
e.g。
id parent = [self superView];
if ([parent isKindOfClass:[UITableView class]) {
// Got it!
}
注意:我不确定,但您可能需要再检查一个级别“up”。即,您可能需要获取上面父对象的superView,直到在层次结构中找到UITableView。