0

インスタンス化されているUIControlクラスFooのインスタンスがいくつかあります。1つのインスタンスはUITableViewの各セルに対応しています。各fooは、画像がタッチされると、セレクターを介してセルの左側にある画像を切り替えます(チェックマーク、チェックマークなし)。また、各インスタンスにタグを割り当てました。

foo.tag = indexPath.row;

セルの中央には人物の名前が付いているため、行の画像に触れると、その人物が「選択」されます。セルの右側には、人物の詳細を取得するための詳細開示ボタンがあります。

上記のすべてが正常に機能します。

セルの中央部分は今は何もしていませんが、列の画像に触れたのと同じようにしたいと思います。人を選ぶために画像に触れなければならないことは必ずしも明らかではないことがわかります。

私のdidSelectRowAtIndexPathは空になりました。私の考えは、didSelectRowAtIndexPathで、行の画像(画像トグルクラスのインスタンス)に対応するセレクターをそのタグで呼び出すことでした。

これは理にかなっていますか?もしそうなら、どうすればいいですか?

ありがとう。

4

2 に答える 2

1

各セルで同じになるようにタグを設定します。

foo.tag = kFooTag;

didSelectRowで、セルを取得してから、セルからfooを取得します。

-(void) tableView:(UITableView *)table didSelectRowAtIndexPath:(NSIndexPath *)path {
  UITableViewCell *cell = [table cellForRowAtIndexPath:path];
  UIView *foo = [cell viewWithTag:kFooTag];
  // do something with foo
}

cell.contentViewにfooを追加した場合は、その上でviewWithTagを呼び出します。

于 2010-07-12T03:50:49.360 に答える
0

テーブルビューのデータソースは、すべての実際のインスタンスを保持する必要があります。インデックスとデータソースを使用してインスタンスを取得しないのはなぜですか。

于 2010-07-12T03:35:32.593 に答える