[英]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.