UITableView中节标题的默认高度

时间:2009-07-29 13:54:26

标签: iphone cocoa-touch uitableview

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

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

    return someDefaultHeight;
}

由于

8 个答案:

答案 0 :(得分:199)

在IOS 5.0及更高版本中,您可以在大多数委托方法中返回UITableViewAutomaticDimension。它位于文档页面的底部

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

答案 1 :(得分:49)

从检查我的应用程序中的默认值看,对于分组表,默认值为22,对于非分组表,默认值为10。

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

答案 2 :(得分:25)

实际上做的诀窍:))

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

答案 3 :(得分:6)

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

答案 4 :(得分:2)

我不确定这里的正确答案是什么,但iOS 5中的分组表格视图的10或22似乎都不正确。我使用44,基于this问题,它至少看起来大致正确的高度。

答案 5 :(得分:2)

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

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

    return [super tableView:tableView heightForHeaderInSection:section];
}

答案 6 :(得分:2)

对于Swift 4.2,您应该返回UITableView.automaticDimension

答案 7 :(得分:-1)

这应该可以解决问题

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