UITableView中节标题的默认高度

rei*_*ein 123 iphone cocoa-touch uitableview

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

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

    return someDefaultHeight;
}
Run Code Online (Sandbox Code Playgroud)

谢谢

Aja*_*arg 202

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

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

  • 这只适用于你使用区域时:` - (NSString*)tableView:(UITableView*)tableView titleForHeaderInSection:(NSInteger)section`如果你正在实现` - (UIView*)tableView:(UITableView*)tableView viewForHeaderInSection :( NSInteger)section`方法,这不起作用. (30认同)
  • @SuperSaiyen - 它与`viewForHeaderInSection`配合使用,你只需要设置`estimatedSectionHeaderHeight` (4认同)
  • 值得注意的是,如果你实现了这个和估计委托方法并返回`UITableViewAutomaticDimension`它将具有零高度. (2认同)

pau*_*erd 48

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

如果您检查应该告诉您的tableview上属性sectionHeaderHeight的值.

  • 你有这些倒退.`UITableViewStyleGrouped`是22,'UITableViewStylePlain`是10. (3认同)

Bad*_*ate 25

实际上做的伎俩:)

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

  • 我想你的意思是`return [self.tableView sectionHeaderHeight];`,或者更好的是,`return [tableView sectionHeaderHeight];`。但是,两者对我来说都返回 -1,可能是因为我没有使用笔尖或故事板。 (2认同)

小智 6

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


Muv*_*otv 5

对于 swift 4.2 你应该返回 UITableView.automaticDimension