带按钮的UITableView单元格

时间:2011-02-09 13:42:44

标签: iphone objective-c uitableview

我希望在每个UITableViewCell中都有一个UIButton,它允许我在对应于该行的对象上执行选择器。他们使用它的方法是为每一行创建一个单独的UITableViewCell(不重用),添加一个用该行标记的新UIButton。当按钮被轻击时,生成的选择器会检查发送者的标签以确定要更改的对象。

有更好的方法吗?首先,我不会重复使用不幸的细胞,并且使用UIView.tag似乎非常hacky。

2 个答案:

答案 0 :(得分:6)

您可以在所有UIButtons上使用相同的标签号。

要提取已单击的行号,请在选择器中实现此代码:

- (void)buttonClicked:(id)sender

{

    UITableViewCell * clickedCell = (UITableViewCell *)[[sender superview] superview];

    NSIndexPath * clickedButtonPath = [self.tableView indexPathForCell:clickedCell];

    int rownumber = clickedButtonPath.row;
}

答案 1 :(得分:0)

我会创建一个UITableViewCell的子类,以便它存储对按钮的引用。然后在单元格出列时设置该按钮。在被调用的方法中,发送者将是按钮,您可以询问它的超级视图,然后询问(它是单元格)它的索引。