分组部分之间的间距不一致

时间:2017-10-17 22:51:56

标签: ios iphone uitableview ios11 uitableviewautomaticdimension

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

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

正如您在linked example中所看到的,第1节和第2节之间的距离是168px。但是第2节和第3节之间的距离是190px。如果我删除第3节中的页脚文本,这将关闭到正确的168px,因此第3节中的页脚文本会以某种方式导致部分之间的间距问题。

此布局完全在Storyboard中构建。我也尝试从代码构建它(包括手动设置标题/脚高),同样的问题也出现了。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

似乎没有办法单独使用Storyboard来解决这个问题。到目前为止,我发现最好的解决方案是使用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);