カスタムセルを持つUITableViewがあり、セルにはUIImageViewとUILabelが含まれています。テーブルを初めてロードすると、各セルに同じ画像がロードされ、LabelArray から取得した異なるラベルがロードされます。
今私が話している画像は radioButton です。したがって、ユーザーがセルをクリックすると、画像が変わります。ユーザーがもう一度クリックすると、デフォルトの状態に変わります。
これを実現するために、この関数を使用し、さらに、selectionStatus という名前の customcell クラスで bool 変数を宣言しました。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
CustomCell * cell = (CustomCell* )[tableView cellForRowAtIndexPath:indexPath];
if(indexPath.row == 0)
{
if(cell.selectionStatus == TRUE)
{
//Do your stuff
cell.selectionStatus = FALSE;
}
else
{
//Do your stuff
cell.selectionStatus = TRUE;
}
}
if(indexPath.row == 1)
{
if(cell.selectionStatus == TRUE)
{
//Do your stuff
cell.selectionStatus = FALSE;
}
else
{
//Do your stuff
cell.selectionStatus = TRUE;
}
}
}
これは正常に機能します (ただし、それが適切な方法であるかどうか、または cell.selected プロパティを確認できるかどうかを知りたい)、その効果を得ることができます。しかし、ビューを閉じて再度開くと、関数
@Anilで以下のコメントに基づいて編集
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if([self.checkedIndexpath count] == 0)
{
[tableCell.selectionImage setImage:@"xyz.png"];
}
else
{
for (int i =0; i <[self.checkedIndexPath count]; i++)
{
NSIndexPath *path = [self.checkedIndexPath objectAtIndex:i];
if ([path isEqual:indexPath])
{
[tableCell.selectionImage setImage:@"abc.png"]
}
else
{
[tableCell.selectionImage setImage:@"xyz.png"]
}
}
return tableCell;
よろしくランジット