我有两个按钮,我将它添加到表格页脚中,另一个添加到表格标题中,我知道如何使用此代码table.tableHeaderView.hidden = YES;
隐藏表格的标题视图
但问题是表的顶部仍然有空格。这个空间等于标题视图大小,但是视图是隐藏的。它仍然有空格。如何通过删除这个来禁用表标题我希望天才开发者能理解我的问题。请帮助我。
提前谢谢。
答案 0 :(得分:68)
而不是隐藏你应该做的标题视图,
tableView.tableHeaderView = nil
稍后如果您想要显示它,那么只需再次分配它,
tableView.tableHeaderView = tableHeaderView;
在斯威夫特:
class myTableViewController: UITableViewController {
@IBOutlet var tableHeaderView: UIView!
private func toggleHeaderView() {
if tableView.tableHeaderView == nil {
tableView.tableHeaderView = tableHeaderView
} else {
tableView.tableHeaderView = nil
}
}
}
在您的故事板上,只需将UIView拖入表视图即可。它将“神奇地”成为表视图标题(如果你再做一个,它将成为表视图页脚)。 但您必须点击标题视图,将拖动引用到表格视图控制器,然后链接它是“tableHeaderView”......那部分不是“魔法”。
请注意,因为“!”在声明中,您必须记住在Storyboard上拖动链接,否则在测试期间会出现运行时错误,这是件好事。
答案 1 :(得分:6)
尝试:
tableView.tableHeaderView?.removeFromSuperview()
tableView.tableHeaderView = UIView(frame: CGRect(x: 0, y: 0, width: 0, height: CGFloat.leastNonzeroMagnitude))
tableView.layoutIfNeeded()
将UIView的高度设置为CGFloat.leastNonzeroMagnitude而不是'0'。 删除tableViewHeader之后,这将删除顶部显示的空白。 这对我有用。
答案 2 :(得分:3)
[self.tableView.tableHeaderView removeFromSuperview];
self.tableView.tableHeaderView = nil;
[self.tableView reloadData];
答案 3 :(得分:2)
//hidden sectionFooter
- (nullable UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
return nil;
}
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection: (NSInteger)section {
return 0.0;
}
答案 4 :(得分:1)
removeFromSuperview或设置nil不起作用
{{1}}
答案 5 :(得分:1)
如果您在情节提要中创建了视图,则可以使用以下方法将其暂时隐藏
null
要再次显示,请使用
def firewall():
result = dict()
for ip in ip_list:
push_resp = dummy_get_push_resp()
result[ip] = push_resp
return result
答案 6 :(得分:0)
if tableView.tableHeaderView == nil{
tableView.tableHeaderView = self.headerHolder
}
else
{
tableView.tableHeaderView = nil
}
}
你应该创建一个outlet headerHolder&它必须是一个强大的财产。如果我们为headerHolder使用了一个弱属性,一旦它为零,它就被释放了。你不能再把它设置为标题
答案 7 :(得分:0)
通常,在使用“ viewForHeaderInSection”设置了头视图之后,虚假头视图会继续出现,并随后以编程方式隐藏或设置为nil。要使其完全消失,请显式设置sectionHeaderHeight = 0。
目标C:
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger) section
{
if (self.viewMode == SectionHeaderShouldBeHidden)
{
tableView.sectionHeaderHeight = 0;
return nil;
}
else if (self.viewMode == SectionHeaderShouldAppear)
{
//section text as a label
UILabel *lbl = [[UILabel alloc] init];
lbl.textAlignment = NSTextAlignmentCenter;
lbl.font = [UIFont boldSystemFontOfSize:13];
lbl.textColor = [UIColor whiteColor];
[lbl setBackgroundColor:App.secondaryColor];
tableView.sectionHeaderHeight = 20;
if (self.queryResultsViewModel.items.count == 0)
return lbl;
lbl.text = @"Section Header Text";
return lbl;
}
}
快速4 +:
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
if !self.viewMode == HeaderShouldBeShown
{
self.listView.sectionHeaderHeight = 0
return nil
}
let lbl: UILabel = UILabel.init()
lbl.textAlignment = NSTextAlignment.center
lbl.font = UIFont.boldSystemFont(ofSize: 13)
lbl.textColor = UIColor.white
lbl.backgroundColor = UIColor.black
tableView.sectionHeaderHeight = 20
lbl.text = "Section Header Text"
return lbl
}