0

例如,我正在尝试将表格视图中第一个单元格的背景颜色设置为蓝色,但它不起作用。每次我开始滚动时,蓝色都会跳到不同的单元格。我试过这些代码。

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{

if([[self.menu objectAtIndex:indexPath.row] isEqual:@"a string"]){


    cell.contentView.backgroundColor=[UIColor blueColor] ;



}

}

 - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell       forRowAtIndexPath:(NSIndexPath *)indexPath
 {

if(indexPath.row==0){


    cell.contentView.backgroundColor=[UIColor blueColor] ;



}

}

我也在索引路径的 cellfro 行中尝试过。我错过了什么吗?

这是我用于 cellforrowatindexpath 的代码:

   if(indexPath.row==0){


    cell.contentView.backgroundColor=[UIColor blueColor] ;



}
4

2 回答 2

0

在 if 上添加 else ...

if(indexPath.row==0){


        cell.contentView.backgroundColor=[UIColor blueColor] ;



    }
else
 cell.contentView.backgroundColor=[UIColor whiteColor] ;

uitableviewCell 正在被重用......

于 2013-04-03T22:18:00.860 回答
-1

在您的情况下,单元格会跳转颜色,因为滚动时会重用表格视图中的单元格以节省内存,以避免发生任何奇怪的事情,您需要专门为任何单元格设置颜色。

您已经完成了第一步,即在 indexPath.row == 0 现在为单元格着色以覆盖第二部分:

你需要遵循这样的模式:

if(indexPath.row == 0){
    //if its the first cell then keep it this color
    cell.contentView.backgroundColor = [UIColor blueColor];
}
else {
    //Any other cell keep it this color
    cell.contentView.backgroundColor = [UIColor whiteColor];
}
于 2013-04-03T22:24:11.903 回答