繁体   English   中英

iOS:隐藏/重新加载tableView标头

[英]IOS: Hide/Reload tableView header

我使用自动布局在故事板上创建了tableview的标题(!不是本节的标题)。

我想显示/隐藏它的能力。

我该怎么做?

我尝试了这段代码:

self.tableView.tableHeaderView.hidden = !flag;

CGRect frame = self.tableView.tableHeaderView.frame;
frame.size.height = flag? k_HEIGHT_TableViewHeader : 0;
self.tableView.tableHeaderView.frame = frame;

它有效,但是却给了我很多自动布局错误。

我也可以将其设置为nil。 如果是这样,如何从情节提要中加载标题?

当您决定隐藏/显示时,是否尝试过使用[tableview reloadData]?

因为是用自动布局创建的,而不是更改框架,所以应该将tableHeaderView上高度的约束从情节tableHeaderView链接到类。 然后,当您要折叠它时,设置constraint.constant = 0 ,然后通过设置constraint.constant = k_HEIGHT_TableViewHeader再次将其展开。 您还需要随后在视图上调用layoutIfNeeded

通过将layoutIfNeeded包装在UIView动画块中,也可以轻松地对此更改进行动画处理

[UIView animateWithDuration:0.5 animations:^{[self.view layoutIfNeeded];}];

自动版式动画参考

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM