UITableViewCell的自定义删除按钮没有编辑模式?

时间:2014-03-08 00:00:41

标签: ios uitableview

我制作了一个带有按钮的UITableViewCell笔尖。按下按钮时,我想删除单元格。表视图不处于编辑模式,我没有使用标准的UITableViewCell删除按钮。

我可以将行号存储在来自cellForRowAtIndexPath的按钮标记中,并使用它来确定要删除的行,但是当删除单元格时,按钮标记将不正确。

我有什么想法可以确定什么按钮与哪一行相关?

3 个答案:

答案 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];

应该得到你想要的东西。