更改"标题视图的高度"在UITableView中

时间:2014-11-05 09:25:50

标签: ios interface-builder

我在表格视图中添加了一个视图“Header View”(参见截图中的结构)。它有固定的高度。我试图改变视图的帧大小,视图越来越小,但是在header和tableview单元格之间仍然有空的空间。 我需要在代码中动态更改标题高度。有什么建议吗?

IB stracture

actual screen

2 个答案:

答案 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中重复使用该单元格,如果您有多个部分,则可以使用此方法。