ios - 为什么 removeFromSuperview() 不折叠 tableview 的 subview ?

标签 ios swift

我在 tableView 中有一个 subview ,位于单元格上方并通过 Storyboard添加。

文档大纲如下: enter image description here

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

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

为什么 removeFromSuperview() 不折叠 subview ?

最佳答案

UITableView 管理它自己的直接 View 层次结构(不是您的自定义单元格,而是它为您创建和管理的表格页眉、页脚、部分、单元格行)。它并非旨在响应对此 View 层次结构的外部更改。所以它根本不会注意到您从其父 View 中删除了表标题 View 。

然而,正如在另一个回复中指出的那样,如果您将 tableHeaderView 设置为 nil,即使用记录的方式更改表头,那么 UITableView 将做出相应的响应。

关于ios - 为什么 removeFromSuperview() 不折叠 tableview 的 subview ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48343202/

相关文章:

ios - 如何使用 CAAnimation 制作曲线/圆弧动画?

ios - 用于 2D 游戏的 Unity

ios - 使用 Alamofire 将图像上传到服务器不起作用

ios - 如何将数据从 View Controller 传递到导航 Controller ,然后再传递到另一个 View Controller ?

ios - 无法在后台使用应用程序保持 GPS 事件,或在前台或后台使用应用程序读取位置

ios - Sharekit2.0 : how can I directly share to facebook and twitter, 而不是通过 UIActionSheet?

android - Flutter中如何从外部存储获取文件?

ios - 如何添加多个电话号码,如联系人应用程序 IOS 7

ios - Swift:按字母顺序对对象数组进行排序

ios - Swift:从另一个类调用 UIButton press