Try to keep as few types of cells as you can. If one type cell is similar to another but with one or two extra labels, just set it all up in the same cell and keep the labels empty on the cell that doesn't need them. That way they can be in the same reuse queue. If the cells are different enough you might need to have more queues. Just instantiate them with a different cellIdentifier
and they will get added to the queue for that identifier.
eg.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell;
if(indexPath.row == 0) {
cell = [tableView dequeueReusableCellWithIdentifier:@"firstRowCell"];
if(!cell) {
cell = [[UITableViewCell alloc] inittWithFrame:CGRectZero reuseIdentifier:@"firstRowCell"];
}
// -- first cell setup
} else {
cell = [tableView dequeueReusableCellWithIdentifier:@"genericRowCell"];
if(!cell) {
cell = [[UITableViewCell alloc] inittWithFrame:CGRectZero reuseIdentifier:@"genericRowCell"];
}
// -- generic cell setup
}
// -- common cell setup
return cell;
}