当我滚动tableview时,tableview单元格的内容被更改
TBDCreateGamePlayerCell * playerCell = [tableView dequeueReusableCellWithIdentifier:@"myCell"];
if (!playerCell)
{
[tableView registerNib:[UINib nibWithNibName:@"TBDCreateGamePlayerCell" bundle:nil] forCellReuseIdentifier:@"myCell"];
playerCell = [tableView dequeueReusableCellWithIdentifier:@"myCell"];
}
当我选择单元格时,单元格的颜色会在代码中更改, 但滚动单元格颜色没有改变。 滚动时,单元格的图像也会在单元格中发生变化。
答案 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]; //当然还有其他任何颜色。