How to set a UITableView static cell to a custom height?

user1282180 picture user1282180 · Jun 23, 2012 · Viewed 15.5k times · Source

I have a UITableView with static cells and I am trying to change the height of the cell when it meets a condition. The conditions are being met but the cell heights won't change.

The code I am using is

[self.tableView setRowHeight:10];

And

self.tableView rowHeight = 10;

Neither of these will change the row height of the cells Is there another way to change them?

Answer

JulenissensHjelper picture JulenissensHjelper · Jun 23, 2012

You need to implement the following delegate-method in your tableview's .m:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return customTableCellHeight;
}

And then change the value of customTableCellHeight:

if (condition) {
    customTableCellHeight = 80; // or whatever
}

When your table cell height needs to change (like when the condition changes, you need to call

 [self.tableView reloadData]; //This calls heightForRowAtIndexPath for all cells