在滚动tableview单元格内容是更改

时间:2015-05-06 12:48:52

标签: objective-c uitableview tableviewcell

当我滚动tableview时,tableview单元格的内容被更改

TBDCreateGamePlayerCell * playerCell = [tableView dequeueReusableCellWithIdentifier:@"myCell"];
if (!playerCell)
{
    [tableView registerNib:[UINib nibWithNibName:@"TBDCreateGamePlayerCell" bundle:nil] forCellReuseIdentifier:@"myCell"];
    playerCell = [tableView dequeueReusableCellWithIdentifier:@"myCell"];
}

当我选择单元格时,单元格的颜色会在代码中更改, 但滚动单元格颜色没有改变。 滚动时,单元格的图像也会在单元格中发生变化。

2 个答案:

答案 0 :(得分:0)

当tableView滚动时,单元格会在width回调中重新初始化。

您需要跟踪此状态,然后将此更改应用于回调中的单元格。像这样:

cellForRowAtIndexPath:

答案 1 :(得分:0)

这绝对来自您的cellForRow方法,我假设您有if语句。

if (thisAndThat){
    //Set  color
}

只需添加其他内容并将其设置为常规颜色。

if (thisAndThat){
    //Set  color
}else{

    //Set default color !
}

这是因为您的细胞被重复使用,一旦细胞有颜色,但内容不符合您的IF,则不会重新设置颜色。

如果我的假设是错误的,那么只需在-cellForRow中设置单元格颜色,因此每次重新使用时,您都会确定它会被分配原始颜色而不是从中更改的颜色其他地方(选择,通知,某事)

所以在你的-cellForRow:中就是这样     cell.backgroundColor = [UIColor orangeColor]; //当然还有其他任何颜色。