1

カスタムUITableViewCellの一部であるボタンがあります。私が欲しいのは、誰かがボタンをクリックしたときに、そのセルに対して適切なtableView:cellForRowAtIndexPathが呼び出されることです。

ボタンを適切なcellForRowAtIndexPathに関連付けるにはどうすればよいですか?

提案やコードサンプルは高く評価されます

4

2 に答える 2

2

touchイベントから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

セクションが1つしかない場合は、おそらくUIViewtagプロパティを使用できます。

次のようなものは理論的には機能します。

- (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 に答える