UITableView中节标题的默认高度

我想在我的UITableView中设置第一个标头的高度。 对于其他标题,我希望他们保持默认的高度。 在下面的代码中,我可以用什么值/常量代替“someDefaultHeight”?

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

谢谢

在IOS 5.0以后,你可以在大多数委托方法中返回UITableViewAutomaticDimension。 它位于文档页面的底部

 - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { if(section == CUSTOM_SECTION) { return CUSTOM_VALUE; } return UITableViewAutomaticDimension; } 

从检查我的应用程序中的默认值,它看起来像一个分组表默认值是22的高度和非分组表默认值是10的高度。

如果你检查应该告诉你的tableview属性sectionHeaderHeight的值。

其实做的诀窍:)

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

为了完整起见,在iOS7中,分组样式节标题的高度为55.5 ,第一个为38 ,后面的标题为38 。 (用DCIntrospect测量)

我不知道这里的正确答案是什么,但是在iOS 5中,10或22都不是正确的分组表格视图。我使用44,基于这个问题,它至less显得粗略正确的高度。

要获得默认高度,只需让super处理它:

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

这应该做的伎俩

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