为什么不删除SuperSuperview()会折叠tableview的子视图?

时间:2018-01-19 14:22:49

标签: ios swift

我在tableView中有一个子视图,位于单元格上方并通过故事板添加。

以下是文件大纲: enter image description here

当我单击UpgradeView中的升级按钮时,我调用了upgradeVIew.removeFromSuperview(),它按预期删除了UpgradeView。然而,它并没有像我预期的那样推动细胞,而只是留下了一个空白。

为了纠正这个问题,我还调用了upgradeView.frame.size.height = 0,这也使得单元格也被推高了。

为什么不删除SuperSuperview()会折叠子视图?

3 个答案:

答案 0 :(得分:1)

removeFromSuperview 不会导致崩溃,挂钩高度约束并使其恒定= 0

self.upgradViewHeightcon.constant = 0

self.view.layoutIfNeeded()

 upgradeVIew.clipsToBounds = true

答案 1 :(得分:1)

UITableView管理自己的直接视图层次结构(不是您的自定义单元格,而是它为您创建和管理的表格页眉,页脚,部分,单元格行)。它不是为响应此视图层次结构的外部更改而设计的。因此,它根本没有注意到您从父视图中删除了表头视图。

然而,正如另一个回复所指出的,如果你将tableHeaderView设置为nil,它使用记录的方式来更改表头,那么UITableView将相应地做出响应。

答案 2 :(得分:0)

该视图被视为tableview标题,因此如果您将其设为nil,则它将自动向上移动。

tableView.tableHeaderView = nil