更改分段表中所选单元格的uitableviewcell颜色

时间:2011-06-03 09:17:10

标签: iphone uitableview

我已经对每个部分进行了分区表检查,每个部分只允许单选,例如单选按钮。

现在我想要做的是我想要更改用户选择的单元格的颜色(不是使用单元格的selectedBackgroundView属性动画的时间颜色变化的一小部分)。

请帮忙。

感谢。

8 个答案:

答案 0 :(得分:16)

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    cell.contentView.backgroundColor = [UIColor colorWithRed:1.0 green:0.0 blue:0.0 alpha:1.0];

答案 1 :(得分:5)

使用此代码........

 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
 {
     UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
     cell.contentView.backgroundColor = [UIColor yellowColor];
 }

快乐编码......

答案 2 :(得分:2)

如果你想在tableview中更改特定单元格的选择样式,那么下面的代码可以帮助..将它放在- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath方法中并进行必要的更改

// x is the numbered location of that particular cell appearing in table view
if(indexPath.row==x) 
{
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    // UITableViewCellSelectionStyleBlue or UITableViewCellSelectionStyleNone
    cell.selectionStyle=UITableViewCellSelectionStyleGray;  
}

答案 3 :(得分:1)

当用户选择一行时

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

被调用。您可以考虑在代理中实现此方法。

答案 4 :(得分:1)

在tableview中使用它didSelectRowAtIndexPath:委托方法

 cell.selectionStyle = UITableViewCellSelectionStyleBlue;

答案 5 :(得分:1)

如果您只想在选择背景时更改背景,则会为单元格中的视图保留视图:

UIView *selectionBackground = [[UIView alloc] init];

selectionBackground.backgroundColor = A_COLOR;

myCell.selectedBackgroundView = selectionBackground;

其中A_COLOR是UIColor。您可以在cellForRowAtIndexPath

中进行设置

答案 6 :(得分:0)

A. 如果您的单元格颜色设置为透明(clearColor),则只需设置cell.selectedBackgroundView.backgroundColor

对于动态用法,这可以在-tableView:didSelectRowAtIndexPath:中完成(您可以在每次用户选择行时更改颜色)。否则在-tableView:cellForRowAtIndexPath:中 - 在设置单元格时(出列或创建后 - 允许颜色更改,例如,每次调用reloadData)或创建表格时(如果不是出列 - 主要是持久的颜色值。)

B。如果您的单元格颜色未设置为透明 - 请在-tableView:didSelectRowAtIndexPath:中设置颜色,如大多数其他注释中所述。但是使用这种方法时,不要忘记恢复以前选择的行的颜色。

答案 7 :(得分:0)

试试这个:

[cell setBackgroundColor:[UIColor colorWithRed:55.0/255.0f green:255.0/255.0f blue:178.0/255.0f alpha:1]];