当前位置: 首页 > 知识库问答 >
问题:

UITableView(分组)在底部添加额外的空标题

毋修为
2023-03-14

我对目标C和iOS有点新手,所以我的问题可能很愚蠢:)我在调试模式下检查了self.table数据,那里没有空项,并且NumberOfSectionsInTableView返回正确的值。下面是UITableView数据源方法:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
NSArray *arr = self.tableData[section];
return arr.count;
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return self.sortedDates.count;
}

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    NSLog(@"%d", [tableView.dataSource tableView:tableView numberOfRowsInSection:section]);
    if ([tableView.dataSource tableView:tableView numberOfRowsInSection:section] == 0) {
        return 0;
    } else {
        return 20.0f;
    }
}

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
    UIView *footer = [[UIView alloc] initWithFrame: CGRectZero];
    footer.backgroundColor = [UIColor whiteColor];
    return  footer;
}

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    if(section < self.sortedDates.count) {
        UILabel *sectionHeader = [[UILabel alloc] initWithFrame:[tableView rectForHeaderInSection:section]];
      //Setting header appearance
    return sectionHeader;
} else {
    UIView *blankHeader = [[UIView alloc] initWithFrame: [tableView rectForHeaderInSection:section]];
    blankHeader.backgroundColor = [UIColor whiteColor];
    return blankHeader;
    }
}

以下是我得到的:

在模拟器:http://take.ms/rm2DL

视图层次结构:http://take.ms/oALdi

这个空白区域正好有超过20个点的高度,所以我假设它应该是某种奇怪的标题。

共有2个答案

狄兴业
2023-03-14

您确定返回的不是页脚视图吗?尝试将那里的footerForSection方法更改为仅返回nil

郝昊天
2023-03-14

只需返回nil,而不是返回页脚的CGRectZero视图。

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
    return  nil;
}

此外,您似乎还没有实现页脚高度设置:部分。这应该返回0.0。

这似乎是以前出现过的,iOS似乎经常垫底到20分。这个问题与iOS6有关,但我注意到一条与iOS8.3有关的评论,所以可能仍然相关。分组的UITableView在底部有20像素的额外填充

 类似资料:
  • 我的tableview在底部有一个额外的空间,如图所示: tableView中的所有行都具有71pt的固定高度。

  • 在iOS 6中,分组表视图的底部似乎有额外的填充(iOS 5没有),但我找不到任何文档表明这是正确的/预期的行为。 这也会影响示例项目,例如TableViewSuite示例中的项目。我想我必须将App委托中的样式更改为分组,并将SDK更新为iOS6,但没有对项目进行其他更改。 调查显示,有保留给页眉和页脚视图,加上一些无法解释的。没有实际的页眉或页脚视图(和为,并且实现和返回例如不做任何事情)。我

  • 从iOS 9.3.2开始,顶部和底部都有额外的空间。 下面是一些例子: 大约有20个像素无法解释的填充。谁能解释一下它们是从哪里来的? 这对我不管用。

  • 我已经以编程方式创建了,但它下面有一些额外的空间(准确地说是29像素)。 以下是初始化表的方式: 以下是限制条件: 我尝试将页脚视图设置为零,并将其高度返回零: 我动态改变它的高度,根据内容: 我还将设置为。这就是最终的结果。单元格和空白之间有分隔符,但底部不是单元格。

  • 我发现这个问题在堆栈溢出和其他站点上也得到了回答。我尝试了所有的选择,但它们都是空白。我的tableview中有4个原型单元格。在故事板上,第四个单元格后没有空格。但在执行时,我发现第四排后面有空白。第四排之后,它们不再是分隔符,但空白的白色仍然是它们的。我尝试添加以下代码: 为了使整个视图看起来合适,我为视图和tableview设置了相同的背景色。除了这个白色区域之外,其他一切看起来都正常, 有

  • 我有一个,作为布局管理器,我正在尝试获得这种安排: 忽略边框的额外深蓝色空间。 我总共有5列和3行,所有组件都将设置PreferredSize()设置为精确值,以完全适合同样具有首选大小(170 x 115)的JPanel。 问题是似乎在最后一列宽度上添加了30 pxls,因为仅在的宽度上添加了30 pxls(总共200个)组件显示正确,如下所示: 但由于额外的空间,最后一列被分隔开了。 它添加了