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行都是橙色。由于我编码它应该只改变一行的颜色。为什么会发生这种情况?任何帮助将不胜感激。提前谢谢。
答案 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
的可重用性期间,您必须声明if
和else
。