分组节之间的间距不一致



当分组的UITableView中的一个节同时包含页眉文本和页脚文本时,该节与其上方的节之间的间距将与表视图的其余部分不一致。

为了确保这不是开发人员错误(或Xcode项目升级问题),我在项目中添加了一个新的UITableViewController,并将其设置为样式>分组。然后我添加了三个部分,每个部分都包含标题文本。在最后一节中,我添加了页脚文本。所有高度都设置为默认值。

正如您在链接的示例中看到的,Section 1和Section 2之间的距离是168px。然而,第2节和第3节之间的距离为190像素。如果我删除了第3节中的页脚文本,它会关闭到正确的168px,所以在第3节有页脚文本在某种程度上会导致节之间的间距问题。

这个布局完全是在情节板中构建的。我也尝试过用代码构建它(包括手动设置页眉/页脚高度),但也出现了同样的问题。

有什么想法吗?

似乎没有办法单独使用情节提要来解决这个问题。到目前为止,我找到的最好的解决方案是使用tableView:heightForHeaderInSection:手动设置标题的高度。

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
//Retreive the title for this section
NSString *stringTitleForSection = [self tableView:tableView titleForHeaderInSection:section];
//Check to see which height should be used
if (section == 0 && stringTitleForSection != nil)
{
return 55.333333f;
}
else if (stringTitleForSection != nil)
{
return 38.0f;
}
else
{
return 0.0f;
}
}

默认高度值可以在原始UITableView上使用以下代码进行检索;我相信这些在iOS的历史上只改变过一两次。

NSLog(@"Section 0: %f", [self.tableView headerViewForSection:0].frame.size.height);

最新更新