What is the default height of UITableViewCell?

Solution 1:

It's 44 pixels. Definitely. I'll never forget that number.

44px is also the default height for UIToolbar and UINavigationBar. (Both switch to 32px when autorotated to landscape orientation.)

Solution 2:

If you want the default dimension on any device you can use: UITableViewAutomaticDimension

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {

    return UITableViewAutomaticDimension;
}

Although 44 pixels is currently the default this is a useful method if your app relies on having the default value set.

Solution 3:

When style = UITableViewStyleGrouped, the default height of the top & bottom cells is actually 45.0f (not 44.0f). And, if the grouped table is only one row the cell height will be 46.0f.

Solution 4:

If you want to calculate this on the fly, just allocate a dummy table cell and read off its height

UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
int height = cell.frame.size.height ;

This way you defend against changes in future versions of iOS, although I suppose that is unlikely.

Solution 5:

In Swift 4 and Swift 5 simply use:

UITableView.automaticDimension

Using 44px won't suffice because it will vary with different screen pixel densities.