从 UITableView 中删除表头后,还有一个空隙

after removing the tableheader from a UITableView, there is a gap left

我有一个带有过滤按钮的 UITableView。如果按下按钮,可能会发生 table 为空的情况。为了通知用户,我在这种情况下添加了一个 tableheader 视图。如果有要显示的行,我将 header 设置回 nil。

更新:我不是在谈论 header 部分,我是在谈论 table header.

一切都按预期工作,但如果 tableheader 被删除,我会看到 table 之前没有的差距。知道如何摆脱它吗?

这是代码:

if( _sections.count == 0 ) {
    UIView *tableHeader = [self getTableHeader]; // make a view
    self.tableView.tableHeaderView = tableHeader;
}
else {
    self.tableView.tableHeaderView = nil;
    [self.tableView reloadData]; // I added this as a test - no luck
}

这是过滤掉所有内容之前的样子:

这是 "empty" 案例:

这是,如果我再次删除过滤器:

当 section != 0 in: - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section

时,您是否尝试过将页眉高度设置为 0.0f

编辑:
我认为您正在寻找的解决方案是将 self.tableView.tableHeaderView = nil; 替换为: self.tableView.tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, self.tableView.bounds.size.width, 0.01f)]; 由 T

先生在 Why is there extra padding at the top of my UITableView with style UITableViewStyleGrouped in iOS7 中找到