如何重置可重复使用的细胞的外观?

时间:2013-11-17 17:24:05

标签: ios uitableview ios7

在我的视图控制器中,我注册了我的自定义单元格:

-(void)viewDidLoad
{
    [super viewDidLoad];

    // Load the NIB file
    UINib *nib = [UINib nibWithNibName:@"FTRecordCellView" bundle:nil];

    // Register this NIB which contains the cell
    [[self tableView] registerNib:nib forCellReuseIdentifier:@"FTRecordCellView"];
}

在单元格创建方法中,我重复使用这样的单元格:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    FTRecordCellView *cell = [tableView dequeueReusableCellWithIdentifier:@"FTRecordCellView"];

    //change colour of one cell
    if(...) {
      [[cell cellBackgroundView] setBackgroundColor:currentDayColor];
    }

    return cell;
}

问题是当进一步向下(屏幕外)时,重复使用具有改变的背景颜色的单元格,并且该重用单元格的背景颜色未设置为原始。但我打算只改变一个细胞的背景颜色。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

这是prepareForReuse的用途。在此方法中将事物设置回其默认状态。或者,为一个单元格使用不同的重用标识符,或者在cellForRow...方法中设置背景颜色。