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

Posted

技术标签:

【中文标题】分组部分之间的间距不一致【英文标题】:Inconsistent spacing between grouped sections 【发布时间】:2017-10-17 22:51:55 【问题描述】:

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

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

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

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

有什么想法吗?

【问题讨论】:

【参考方案1】:

似乎没有办法单独使用 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);

【讨论】:

以上是关于分组部分之间的间距不一致的主要内容,如果未能解决你的问题,请参考以下文章

tableview分组样式每组section之间距离的调整

与 Java 中的间距不一致

IE6 IE7下li间距高度不一致问题(转)

Python:找出整数列表是不是一致

浅析数据一致性

浅析数据一致性