我制作了一个带有按钮的UITableViewCell笔尖。按下按钮时,我想删除单元格。表视图不处于编辑模式,我没有使用标准的UITableViewCell删除按钮。
我可以将行号存储在来自cellForRowAtIndexPath的按钮标记中,并使用它来确定要删除的行,但是当删除单元格时,按钮标记将不正确。
我有什么想法可以确定什么按钮与哪一行相关?
答案 0 :(得分:3)
就像这个answer:
CGPoint buttonPosition = [sender convertPoint:CGPointZero toView:self.tableView];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:buttonPosition];
答案 1 :(得分:1)
如果您的按钮是单元格内容视图的子视图(应该是这样)。您可以使用以下按钮获取单元格的索引路径:
UIView *cellContentView = yourButton.superview;
UITableViewCell *cell = cellContentView.superview;
NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
然后,只需删除单元格:
[tableView beginUpdates];
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
withRowAnimation:UITableViewRowAnimationAutomatic];
[tableView endUpdates];
答案 2 :(得分:0)
如果按钮调用的方法具有如下签名:
-(void)action:(id)sender;
发件人将是调用该操作的UIButton:
UIButton *button = (UIButton *)sender;
UITableViewCell *cell = [[button superview] superview];
应该得到你想要的东西。