0

カスタムのtableViewボタンの色でセルの色を変更しています。セルの indexRow がボタンをクリックすると緑色になりますが、スクロールすると再び通常の白色になります。さまざまな解決策を試しましたが、結果はありませんでした。提案していただけませんか。ありがとう。

-(void)yesAction:(id)sender
{
 _cellButtonPress = YES;
// [myChklist reloadData];
UIButton *button = (UIButton *)sender;
UITableViewCell *cell = (UITableViewCell *)button.superview.superview;
UITableView *curTableView = (UITableView *)cell.superview;
NSIndexPath *indexPath = [curTableView indexPathForCell:cell];
cell.backgroundColor = [UIColor greenColor];
}
4

1 に答える 1

1

セルがスクロールすると、再び描画されます。プロパティを再度設定する必要があります。

選択したインデックスの配列を維持できます。次に、cellForRowAtIndexPath デリゲート メソッドで、インデックスに基づいて背景色を白または緑に設定できます。次のようなものです。

  NSMutableArray* indexArray = [[NSMutableArray alloc] init];

yesAction で:

 [indexArray addObject:indexPath];

cellForRowAtIndexPath:

 if ([indexArray containsObject:indexPath]) {
    cell.backgroundColor = [UIColor greenColor];
}
于 2013-05-06T08:00:39.227 に答える