1

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

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

正如您在链接示例中看到的,Section 1 和 Section 2 之间的距离是 168px。然而,Section 2 和 Section 3 之间的距离是 190px。如果我删除第 3 节中的页脚文本,这将接近正确的 168 像素,因此第 3 节中的页脚文本会以某种方式导致节之间的间距问题。

此布局完全在情节提要中构建。我也尝试过从代码构建它(包括手动设置页眉/脚高),并且发生了同样的问题。

有任何想法吗?

4

1 回答 1

0

似乎没有办法单独使用 Storyboards 来解决这个问题。到目前为止,我发现的最佳解决方案是使用 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);
于 2017-10-18T11:57:15.893 回答