Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use prepareForReuse method

I found this method called - (void)prepareForReuse. I read the document but I don't understand how to use it.

When I scroll my tableview, it gets stuck, or has slow scrolling and I intend to use prepareForReuse. Can someone please point me to a good tutorial or give me some sample code so i could learn.

Sorry I don't have any code to demonstrate my working.

like image 671
shajem Avatar asked Feb 20 '12 14:02

shajem


2 Answers

The prepareForReuse method is called by the owning table view on a cell that is not needed right now. You are supposed to do minor cleanup here for your custom cell, like resetting alpha values and the like, so it can then later be reused. You shouldn't call it yourself, BTW.

You only ever need to care about it if you're implementing custom table view cells: you overwrite it to do your cleanup.

You're "using" it simply by using reuse identifiers in 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
}

To further improve your table view performance, see the question Tricks for improving iPhone UITableView scrolling performance?

like image 108
DarkDust Avatar answered Oct 27 '22 22:10

DarkDust


You use it if you have logic in your custom cell class that may or may not modify a cell property. For example if your table calls your cell, but in some cases it can modify the background colour, but some cases it won't and would use the default you've set, then you would need to implement

-(void)prepareForReuse{
    [super prepareForReuse];

    // Then Reset here back to default values that you want.
}

Otherwise, it could reuse the previous values you've set if your logic does not change it.

like image 20
mskw Avatar answered Oct 27 '22 21:10

mskw