滚动后UITableView行颜色发生变化

时间:2014-09-16 12:29:42

标签: ios uitableview

Code:
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

static NSString *cellIdentifier = @"cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if(cell == nil){
    cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
    cell.selectionStyle = UITableViewCellStyleDefault;
}
cell.contentView.backgroundColor = [UIColor clearColor];

cell.textLabel.text = @"testing";
if(indexPath.row == 1){
    cell.textLabel.textColor = UIColorMake(kOrangeColour);
}

return cell;

}

我在storyboard中有一个14行的tableview。我做了2行的改变颜色(ie1索引)。当我在tableview中上下滚动很多次然后我发现14行(即13索引)颜色也更改。现在第1行和第14行都是橙色。由于我编码它应该只改变一行的颜色。为什么会发生这种情况?任何帮助将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:4)

使用

if(indexPath.row == 1){
    cell.textLabel.textColor = UIColorMake(kOrangeColour);
} else {
    cell.textLabel.textColor = [UIColor whiteColor]; // change is here
}

而不是

if(indexPath.row == 1){
    cell.textLabel.textColor = UIColorMake(kOrangeColour);
}

UITableViewCell的可重用性期间,您必须声明ifelse