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.