从具有原型单元的UITableView中删除静态UIView

时间:2014-11-21 21:29:18

标签: ios uitableview

我有一个我正在维护的故事板UITableViewController

UITableView设置为使用动态原型,并有2个单元格。

在这两个单元格之上是在表格视图中插入的UIView。该视图包含UIButton和另一个自定义UIView。两者都有约束。结果是我们有一个表格视图,上面有一个按钮。

现在,在某些情况下,我们要删除该按钮,并让其余的表视图在UI中向上移动。我可以删除该按钮 - 单独或删除父UIView,但我似乎无法让表更改原型单元格的位置。

为了清楚地表明,我的文档大纲如下所示:

  • 表格视图
    • 查看(下面提到的buttonContainerView)
      • 的UIButton
      • 查看(下面提到的子视图)
      • 约束
    • 原型细胞1
    • Prototype Cell 2

我尝试了几种不同的方法来删除按钮。在阅读之后,从超级视图中删除它也将删除约束,这就是我目前采用的方法。

[self.buttonContainerView removeFromSuperview];

我尝试删除按钮,子视图和容器视图。我也尝试过显式删除约束然后删除视图。这些似乎都不起作用。

我还尝试了上面的方法,在表视图上调用setNeedsLayout和setNeedsUpdateConstraints,以及在视图上调用setNeedsDisplay。

我也尝试将第一个视图的行高设置为0,但事实证明它不是UITableViewCell,所以这也不起作用。

当然,如果我从故事板中删除该容器视图,原型单元格确实会在UI中显示它们应该的位置。

你能感受到喋喋不休吗?

我还有什么可以在这里有效删除该顶视图?

1 个答案:

答案 0 :(得分:1)

我没有意识到我的设置是带有表头的UITableView。要删除它并修复间距问题,我只需要在self.tableView.tableHeaderView = nil中设置viewWillAppear: