我发现这个方法叫- (void)prepareForReuse
。我read the document但我不明白如何使用它。
当我滚动我的tableview时,它会卡住,或者滚动速度慢,我打算使用prepareForReuse
。有人可以指点我一个好的教程或给我一些示例代码,以便我可以学习。
抱歉,我没有任何代码可以证明我的工作。
答案 0 :(得分:18)
prepareForReuse
方法由拥有表视图在当前不需要的单元格上调用。你应该在这里为你的自定义单元格进行小的清理,比如重置alpha值等,这样以后就可以重复使用了。你不应该自己打电话,BTW。
如果您正在实现自定义表格视图单元格,您只需要关心它:您覆盖它以进行清理。
您只需在tableView:cellForIndexPath:
中使用重用标识符即可“使用”它:
static NSString *CellIdentifier = @"Identifier";
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier];
[cell autorelease];
// Set up your cell
}
要进一步改善表格视图效果,请参阅问题Tricks for improving iPhone UITableView scrolling performance?
答案 1 :(得分:14)
如果您的自定义单元格类中有逻辑可能修改或不修改单元格属性,则使用它。例如,如果你的表调用你的单元格,但在某些情况下它可以修改背景颜色,但有些情况下它不会并且会使用你设置的默认值,那么你需要实现
-(void)prepareForReuse{
[super prepareForReuse];
// Then Reset here back to default values that you want.
}
否则,如果您的逻辑没有改变它,它可以重复使用您设置的先前值。