ios - 在单元格内显示整个表格 View

标签 ios iphone swift uitableview cell

我需要在(静态表的)单元格内显示动态 TableView 。使用部分来代替对我来说是不够的。但我不希望这个表格是可滚动的,因此整个表格必须立即出现。问题是这个表的大小[和行数,以及每行大小]根据显示的内容而变化。如何将单元格(包含表格)自动调整大小属性与内部必须立即显示所有内容的表格关联起来?

目前,我在单元格内有 tableView,并且约束将其绑定(bind)到所有 4 个边。第一个表格(不是单元格内的表格)的 rowHeight 属性设置为 UITableViewAutomaticDimension,但单元格内的表格并未完全显示。 如果我将静态单元格高度设置为大于 tableView(单元格内部)高度的值,则会显示整个表格,并且其下方还会有一个额外的空间(因为表格被限制在单元格的 4 条边上)

那么,关于如何在动态地具有完美尺寸的单元格内显示整个表格有什么想法吗?

ps:我尝试在单元格内使用 Collection View 。不幸的是它没有达到我的目的。

谢谢!

更新

我尝试为内表创建一个类并使用(如 iamirzhan 所指出的)contentSize didSet,如下所示:

override var contentSize:CGSize {
        didSet {
            self.invalidateIntrinsicContentSize()
        }
    }

然后,我使用此方法调用一个函数来调整保存表格的单元格的大小:self.frame.size.height = table.contentSize.height。该函数位于该单元格自己的类中。 这行得通,表格现在完全显示出来了。问题是它与下面的单元格重叠,所以我仍在寻找解决方案。

最佳答案

我不明白为什么这需要 2 个表格 View 。静态部分应该是 uitableviewheaderfooters 或只是一个 UIStackView。但要回答您的问题,只需查询您的子 tableView 的大小并将其返回 tableView:heightForRowAtIndexPath:对于外部 TableView 。子 tableView 的高度只是其所有 subview (包括任何页眉/页脚)高度的总和。这通常不难计算,除非您使用像 webview 这样的东西,您需要实际加载内容并异步获取大小。您可以使用 UIView.sizeThatFits(_:) 计算基于其内在内容大小的元素的大小。 。其他元素应该在 Storyboard 中具有固定的大小或常量,您可以对其进行总结。

关于ios - 在单元格内显示整个表格 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48714530/

相关文章:

swift - 关于如何在按住按钮时隐藏 View

ios - 如何从一个类调用另一个类的方法(iOS)

ios - 禁用键盘时

ios - 如何在后台捕获由推送通知触发的 iOS 位置?

ios - 如何更改 ios-charts 中的气球标记图像?

swift - 将背景模糊添加到 SKSpriteNode(或 SKScene)

ios - BSP Dungeon Generator 出现无法修复的错误

ios - 使用 RxSwift 的 combineLatest 中超过 8 个参数

iPhone SDK - orkut API

iphone - 从新的 fbconnect 登录 Facebook