Monday, May 21, 2012

Default height for section header in UITableView


I want to set the height of the first header in my UITableView. For the other headers I want them to remain the default height. What value/constant can I put in place of "someDefaultHeight" in the code below?




- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if (section == 0)
return kFirstHeaderHeight;

return someDefaultHeight;
}



Thanks


Source: Tips4all

4 comments:

  1. From checking the defaults in my app it looks like for a grouped table the default is a height of 10 and for a non-grouped table the default is a height of 22.

    If you check the value of the property sectionHeaderHeight on your tableview that should tell you.

    ReplyDelete
  2. Actually do the trick :)

    - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
    {
    if(section == 0)
    return kFirstSectionHeaderHeight;
    return [self sectionHeaderHeight];
    }

    ReplyDelete
  3. 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.

    ReplyDelete
  4. This should do the trick

    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
    {
    if(indexPath.section == CUSTOM_SECTION)
    {
    return CUSTOM_VALUE;
    }
    return [tableView rowHeight];
    }

    ReplyDelete