hzxu
hzxu

Reputation: 5823

UITableView: how to make it not recycle cell?

Is there a way to make table view not recycle UITableViewCell so after all cells are loaded, it won't ask for cells(ie tableView:cellForRow...)?

I know I can put the table view in a scroll view and make the table view to have the same size as the scroll view, so all cells will be loaded, but some of my cells have variable sizes, then I need to update the scroll view's content size after the cells' sizes are changed.

Is there any other way to do this?

update:

Sorry for the misleading, actually I mean how to make it not REMOVE cells once created, so if there are ten cells, and there won't be any cell returned by dequeueReusableCell and after ten tableView:cellForRow: it won't call it again.

Simply not use reusable identifier will make it create new cell every time as needed, even the cell at position 1 has been created but then reused for position 2.

Upvotes: 3

Views: 6524

Answers (3)

Eiko
Eiko

Reputation: 25632

Set the reuseIdentifier to nil.

This is much better than using a different identifier for each cell, as the table can now dispose unneeded cells quickly. If they have some identifier set, there's no way to tell if you will ever reuse them.

So you don't have to miss the reuse part completely, just for the cells you don't want to. If the new cell contains the same subviews (maybe just layout and configured differently) - it might still be better to reuse.

Upvotes: 8

akshaynhegde
akshaynhegde

Reputation: 1938

just dont use - (id)dequeueReusableCellWithIdentifier:(NSString *)identifier in the cellForRowAtIndexPath method and create a new cell everytime. Other way is to give a different cell Identifier for each cell you create.

Now, If you can elaborate on why you dont want the tableview to recycle its cells (which is one of the powerful feature of tableview), may be you can find out other ways to achieve the same thing with reusing the cells..!!

Hope it helps..:)

Upvotes: 0

emillime
emillime

Reputation: 531

Just don't use a cellIdentifier, or use a different identifier for each cell.

Upvotes: 0

Related Questions