如何使用prepareForReuse方法

sha*_*jem 19 iphone objective-c

我发现这个方法叫做- (void)prepareForReuse.我阅读了该文档,但我不明白如何使用它.

当我滚动我的tableview,它被卡住,或有慢滚动,我打算使用prepareForReuse.有人可以指点我一个很好的教程或给我一些示例代码,以便我可以学习.

对不起,我没有任何代码来证明我的工作.

Dar*_*ust 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
}
Run Code Online (Sandbox Code Playgroud)

要进一步提高表格视图的性能,请参阅提高iPhone UITableView滚动性能的技巧问题


msk*_*skw 14

如果自定义单元类中有逻辑可能修改或不修改单元属性,则可以使用它.例如,如果你的表调用你的单元格,但在某些情况下它可以修改背景颜色,但有些情况下它不会并且会使用你设置的默认值,那么你需要实现

-(void)prepareForReuse{
    [super prepareForReuse];

    // Then Reset here back to default values that you want.
}
Run Code Online (Sandbox Code Playgroud)

否则,如果您的逻辑没有改变它,它可以重用您设置的先前值.

  • 如何设置它以便修改的单元格保持修改而其他将被"重用"的单元格保留为默认选项? (2认同)