2

私はiPhoneの開発に不慣れです。私は問題で立ち往生しました。UITableViewにチェックボックス関数を実装したい。しかし、私のUITableViewCellsは、画像と3つのUILabelで構成されるカスタムセルです。チェックボックスの画像を配置できるように、サブビューをテーブルビューに移動することができ、それで成功しました。しかし、問題が発生するのは、画像をクリックするたびに、最後のセルのチェックボックスだけが変更されることです。クリックしたセルにアクセスしたいのですが。

私はこれを試しました

    UITableViewCell *cell = [self cellForRowAtIndexPath:indexPath]

しかし、セルはカスタムであるため、これはクラッシュします。

誰かが私にそれを行うための良い方法を提案できますか?

4

3 に答える 3

9

使用する代わりに

UITableViewCell *cell = [self cellForRowAtIndexPath:indexPath]

使ってみてください

YourCustomCell *cell = (YourCustomCell *)[self.tableView cellForRowAtIndexPath:indexPath];

それが役に立てば幸い

于 2012-04-02T12:46:18.550 に答える
2

まず、タグを定義する必要があります-

#pragma imageViewTag 1

次に、cellForRowAtIndexPathこのタグを画像ビューに割り当てます

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

次に、このタグを使用して、どこからでも画像ビューにアクセスできます-

 UITableViewCell *cellView = (UITableViewCell*) [tblView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:0]];

 UIImageView *imgView = (UIImageView*) [cellView viewWithTag:imageViewTag];
于 2012-04-02T12:43:34.010 に答える
1

TableViewでDidSelectDelegateメソッド

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

   UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
   UIImageView *image = [cell.contentView viewWithTag:15];
   //You should have set the tag value as 15  when creating the image in cell 
   //and you should have added to the cell contentview

}

セルを取得できない場合は、再利用可能なセルの概念を正しく使用していなかった可能性があります。したがって、cellforrowindexコード全体を投稿してください。

チェックのようなものを使用している場合。画像の代わりにテーブルビューのデフォルトの開示インジケーターを使用しないのはなぜですか。

于 2012-04-02T12:40:21.300 に答える