如何在选择单元格时编辑uitableviewcell背景颜色

时间:2011-12-31 22:23:00

标签: uitableview background push-notification didselectrowatindexpath

我正在开发一个应用程序,以便在uitableview中显示推送通知。如果用户尚未显示通知,则打印该通知的单元格具有灰色背景颜色。 所以在

中加载视图时
cellForRowAtIndexPath

方法我看是否显示通知,将单元格的背景更改为灰色,如果显示通知则保留默认值

if([shown isEqualToString:@"no"]){
    cell.contentView.backgroundColor = [UIColor lightGrayColor];
    cell.textLabel.backgroundColor = [UIColor lightGrayColor];
    cell.detailTextLabel.backgroundColor = [UIColor lightGrayColor];
}
cell.textLabel.text = [NSString stringWithFormat:@"Notifica del %@",data];
cell.detailTextLabel.text = message;

当用户点击单元格时,我想更改白色背景的颜色(当我不加载背景颜色时的相同样式)

我这样做:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *not = [notification objectAtIndex:indexPath.row];
NSArray *stringArray = [not componentsSeparatedByString:@"---"];
NSString *message = [stringArray objectAtIndex:0];
NSString *data = [stringArray objectAtIndex:1];
NSString *shown = [stringArray objectAtIndex:2];
UITableViewCell *cell = (UITableViewCell *)[tableView cellForRowAtIndexPath:indexPath];
cell.contentView.backgroundColor = [UIColor whiteColor];
cell.textLabel.backgroundColor = [UIColor whiteColor];
cell.detailTextLabel.backgroundColor = [UIColor whiteColor];
UIAlertView *popUp = [[UIAlertView alloc] initWithTitle:[NSString stringWithFormat:@"Notifica del %@",data] message:message delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
[popUp show];
[popUp release];
}

结果是所有单元格变成完全白色(隐藏文本)并出现警告,但是当我点击另一个单元格时,第一次点击再次变得像以前一样,单击的新单元格变成完全白色......我该怎么办?你能救我吗?

1 个答案:

答案 0 :(得分:0)

在您的单元格中设置UIView。在此UILabel上获取UIView。在cell上写下UILabel文字。现在,设置UIView backgroundColorcell.seletionStyle =无,UILabel backgroundColor =清除。

现在,在

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

 change your view background color and uilabel color. shortly change color of cellview and cell text color

}

这只是一个建议,可能会帮助你。