在写一个app,用到tableview,需要设置第一行的颜色是白色,其余的则是黑色,一开始代码是这样的:
if (indexPath.row == 0) {
cell.dateLabel.textColor = [UIColor whiteColor];
cell.tmpLabel.textColor = [UIColor whiteColor];
cell.txtLabel.textColor = [UIColor whiteColor];
} else {
//cell显示内容设置
}
以上代码只设置了第一行的字体颜色,实际运行的时候一看是没有什么问题,可是往下拉加载更多cell的时候,发现有一行cell字体颜色也是白色了。这里就涉及到了重用机制,tableview不会把所有的cell都生成,只会生成一定数量,当往下拉,tableview就会把之前的cell拿来重用,显示不同的数据,而由于第一行字体颜色设置为白色了,重用的时候字体颜色自然就是白色了。所以代码要修改如下:
if (indexPath.row == 0) {
cell.dateLabel.textColor = [UIColor whiteColor];
cell.tmpLabel.textColor = [UIColor whiteColor];
cell.txtLabel.textColor = [UIColor whiteColor];
} else {
cell.dateLabel.textColor = [UIColor whiteColor];
cell.tmpLabel.textColor = [UIColor whiteColor];
cell.txtLabel.textColor = [UIColor whiteColor];
}
添加了设置其它cell字体颜色的代码,这样就只有第一行字体颜色为白色,当进行cell重用时,进行判断,row不等于0,就重新设置字体颜色为黑色。
网友评论