2

uitableviewでチェックされていないときに、選択またはチェックマークを付けて前の色にリセットしたセル全体に色を設定する方法は?

4

3 に答える 3

3

わかりました、ここで、セルが選択されている場合はセルに色を付け、選択されていない場合は別の色になり、選択したセルを前の色のままにしたいと思います。そのため、配列の状態をグローバルに設定します。didSelectRowAtIndexPath で:

if (![myMutableArray containsObject:indexPath]) {
    [myMutableArray addObject:indexPath]; 
}
else{
    [myMutableArray removeObject:indexPath];
}

[sampleTableView reloadData];

そして cellForRowAtIndexPath で:

if ([myMutableArray containsObject:indexPath]) {
    cell.backgroundColor = [UIColor redColor];
}
else{
    cell.backgroundColor = [UIColor greenColor];
}
于 2012-08-13T05:30:49.563 に答える
2

ヘッダーファイルで NSIndexPath のオブジェクトを作成し(ここで使用するcheckedIndexPathにします)、そのプロパティを割り当てて合成します.tableViewのメソッド cellForRowAtIndexPath では、次を使用します。

cell.selectionStyle = UITableViewCellSelectionStyleNone;

didSelectRowAtIndexPath で次を使用します。

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

if(self.checkedIndexPath)
{
    UITableViewCell* uncheckCell = [tableView cellForRowAtIndexPath:self.checkedIndexPath];
    uncheckCell.backgroundColor = [UIColor green];
}
UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath];
cell.backgroundColor = [UIColor redColor];
self.checkedIndexPath = indexPath;

}   

これを使用すると、セルが選択されている場合は赤になり、選択されていない場合は緑になります。

于 2012-08-11T11:37:00.787 に答える
0

の背景色を設定できますUITableViewCell

cell.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"cell_normal.png"]]

クリックイベントで色が自動的に変わります。

選択範囲の色は次の方法で変更できます:-

cell.selectionStyle = UITableViewCellSelectionStyleBlue;

textLabel の色を変更します。

cell.textLabel.textColor = [UIColor blackColor];
于 2012-08-11T10:39:34.153 に答える