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 对象(让它在这里使用的检查索引路径)并分配它的属性并合成它。在你的 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 回答