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

时间:2016-01-19 22:50:48

标签: ios objective-c uitableview ios9.2

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

更新:我不是在谈论节标题,我在谈论表格标题。

一切都按预期工作,但如果删除了表头,我看到桌子上有一个间隙,以前没有。知道怎么摆脱它吗?

这是代码:

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
}

这是在过滤掉所有东西之前的样子:

everything crisp and clean, no gap.

这是“空”案例:

all data filtered: Show the message

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

removed filter again

1 个答案:

答案 0 :(得分:1)

当你在- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section

中的部分!= 0时尝试将标题高度设置为0.0f

修改
我认为您正在寻找的解决方案是将self.tableView.tableHeaderView = nil;替换为Why is there extra padding at the top of my UITableView with style UITableViewStyleGrouped in iOS7中的self.tableView.tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, self.tableView.bounds.size.width, 0.01f)];替换为T先生