1

我有一个按钮,它是自定义 UITableViewCell 的一部分。我想要的是,当有人单击按钮时,为该单元格调用正确的 tableView:cellForRowAtIndexPath 。

如何将按钮绑定到正确的 cellForRowAtIndexPath?

任何建议和/或代码示例将不胜感激

4

2 回答 2

2

您可以从触摸事件中获取 indexPath。将您的 buttonTapped 方法修改为:

- (void) buttonTapped:(id) sender forEvent:(UIEvent *)event

然后使用类似下面的东西:

NSIndexPath *indexPath = [tableView indexPathForRowAtPoint:[[[event touchesForView:sender] anyObject] locationInView:tableView]];
于 2012-09-26T03:34:39.140 回答
0

如果你只有一个部分,你可能可以使用UIView'tag属性。

像下面这样的东西理论上会起作用。

- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)idxPath 
{
    Your_UITableViewCell_Subclass * cell = [tableView dequeueCellWithIdentifier:@"..."];
    cell.button.tag = idxPath.row;

    ....

    return cell;
}

....

- (void) buttonTapped:(id) sender 
{
    int idx = ((UIButton *)sender).tag;
    NSIndexPath * idxPath = [NSIndexPath indexPathForRow:idx inSection:0];
    UITableViewCell * cell = [self tableView:tableView cellForRowAtIndexPath:idxPath];

    // Do whatever you want to do with the cell
}
于 2012-09-26T03:30:06.347 回答