在我的视图控制器中,我注册了我的自定义单元格:
-(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;
}
问题是当进一步向下(屏幕外)时,重复使用具有改变的背景颜色的单元格,并且该重用单元格的背景颜色未设置为原始。但我打算只改变一个细胞的背景颜色。我该如何解决这个问题?
答案 0 :(得分:3)
这是prepareForReuse
的用途。在此方法中将事物设置回其默认状态。或者,为一个单元格使用不同的重用标识符,或者在cellForRow...
方法中设置背景颜色。