以编程方式删除UITableView的标题,并自动调整内容大小以填充已删除的区域

我已经通过接口生成器在UITableView的标题部分添加了一个UIButton ,并希望在某些情况下删除对button的访问。 我试图使用.hidden = TRUE属性,但它只是隐藏从视图中的button,留下一个空白。 如何以编程方式删除UITableView的标题,并自动调整表格的内容以填充已删除的标题区域?

如果你想删除表头的视图,只需将myTable.tableHeaderView属性设置为零。 如果你有什么实际上是一个节头,那么你需要从viewForHeaderInSection方法返回nil,并调用[myTableView reloadData]

你也可以这样做:

 - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { return 0.0; } 

这似乎适用于我的(单)节头,并避免reloadData的需要。

注意:

 - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section 

仍然被称为,但其回报价值似乎被忽略。

我创build了一个名为removeHeader的布尔属性,然后当我想删除我的头我打电话:

 func removeSectionHeader() { removeHeader = true self.tableView.reloadData() } 

然后,当我的tableView重新加载它会调用这个tableView委托方法:

 func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { if removeHeader { return 0.0 } else { let height = self.tableView.sectionHeaderHeight return height } }