Search code examples
iphoneobjective-cipaduitableview

Expanding UITableViewCell on Tap?


I need to expand a UITableView cell when I tap it (animate it as well). However I don't know the cell which is being tapped and I have seen the answer here: Can you animate a height change on a UITableViewCell when selected?

It seems to be a very popular answer, not just in the question. However, I need to get the cell, so how in the heightForRowAtIndexPath method can I get the cell?

Because I have tried this:

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];

However using this in the heightForRowAtIndexPath method crashes the app as the first time it runs (when the view loads) it gets caught in an infinite loop I think.

Anyway if I was to take this approach how would you suggest i get around this issue? I need to access the cell. Or how else would you expand your tableview cell (animated)?


Solution

  • Carry on adjusting the height as you are.

    I would suggest trying to get as much as you can from autoresizing masks as they have worked well for me in the past.

    If you need finer grained control you can create a subclass and override the setFrame: method to find out when the frame is changing size and then set up animations appropriately there.