In IOS 5.0 onwards you can return UITableViewAutomaticDimension in most of the delegate methods. Its at the bottom of the documentation page
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if(section == CUSTOM_SECTION)
{
return CUSTOM_VALUE;
}
return UITableViewAutomaticDimension;
}
From checking the defaults in my app it looks like for a grouped table the default is a height of 22 and for a non-grouped table the default is a height of 10.
If you check the value of the property sectionHeaderHeight on your tableview that should tell you.
Actually do the trick :)
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if(section == 0)
return kFirstSectionHeaderHeight;
return [self sectionHeaderHeight];
}
For the sake of completeness: in iOS7+ the height for grouped style section headers is 55.5
for the first and 38
for following headers.
(measured with DCIntrospect)
For swift 4.2 you should return UITableView.automaticDimension
I'm not sure what the correct answer is here, but neither 10 or 22 appears to be the correct height for a grouped table view in iOS 5. I'm using 44, based on this question, and it at least appears to roughly the correct height.
To get the default height, just let super
handle it:
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if (section == 0)
return kFirstHeaderHeight;
return [super tableView:tableView heightForHeaderInSection:section];
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With