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
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.
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?