Search code examples
iosxcodeuitableviewrow-height

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


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?


Solution

  • 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