我在表格视图中添加了一个视图“Header View”(参见截图中的结构)。它有固定的高度。我试图改变视图的帧大小,视图越来越小,但是在header和tableview单元格之间仍然有空的空间。 我需要在代码中动态更改标题高度。有什么建议吗?
答案 0 :(得分:0)
在tableview的委托中,你必须使用
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return /*desired height*/;
}
修改强>
根据您的评论,如果您不想更改界面,您可以做的是为该视图设置高度约束。
然后,您可以将约束引用到管理视图的控制器的标头。
在代码中,您可以通过更改约束的值并更新视图来更改高度:
[UIView animateWithDuration:/*animation time in seconds*/ animations:^{
yourHeightConstraint.constant = /*desired height*/;
[self.view layoutIfNeeded];
}];
[self.view updateConstraints];
答案 1 :(得分:0)
我建议您将Header View
作为View
的子视图移出,为其设置标记,然后在viewForHeaderInSection
中使用标记来获取它。在heightForHeaderInSection
中设置适当的高度。当高度改变时,刷新tableView。原因是Header View
不再是表视图的子视图,它将始终坚持第一个表视图行。
同样使用当前设计,您可以将Header View
设为一个单元格,然后在viewForHeaderInSection
中重复使用该单元格,如果您有多个部分,则可以使用此方法。