2010-04-02 86 views
1

我有一个填充UITableView的完整列表。我想用不同的颜色来背景单元格之一,它最初起作用,但由于某种原因,当我开始向上和向下滚动表格时,它开始绘制更多具有绿色背景的单元格。滚动时在UITableViewCell中错误地重复单元格背景

请注意,总是一个detailCell.detailTimeLabel.text这等于currentTime

我的代码是:

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

... SOME MORE CODE HERE ... 

     if ([detailCell.detailTimeLabel.text isEqualToString:currentTime]) { 
      UIView* backgroundView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease]; 
      backgroundView.backgroundColor = [UIColor greenColor]; 
      detailCell.backgroundView = backgroundView; 
      for (UIView* view in detailCell.contentView.subviews) 
      { 
       view.backgroundColor = [UIColor clearColor]; 
      } 
     } 
    } 

它可以是问题吗?

回答

2

您试图将数据存储在tableviewcell中。你不能这样做,因为细胞不断重复使用。您看到重复出现的背景是因为它使用不同文本一遍又一遍地显示同一个单元格。

当您退出单元时,您需要将其重置为空白并清除所有以前的数据。那么你应该设置背景颜色,只有当你正在把当前时间放入单元格中的数据时。

作为一般规则,您不应该引用单元格中的数据。如果您需要了解特定单元格中的内容,请查看数据模型本身内的索引路径中的数据。

相关问题