来自自定义 Xib 的表格视图中的动态单元格大小 [重复]

Posted

技术标签:

【中文标题】来自自定义 Xib 的表格视图中的动态单元格大小 [重复]【英文标题】:Dynamic Cell Size in Table View from a custom Xib [duplicate] 【发布时间】:2016-01-08 15:42:31 【问题描述】:

(警告,我是 ios 新手。) 我创建了一个自定义表格视图单元,并在两个单独的表格视图控制器上注册并实现了它。当我运行应用程序时,自定义 xib 内容被父表格单元格视图高度截断。

我希望每个表格视图根据自定义表格视图单元 xib 中内容的高度动态确定其高度。

我已经尝试添加

    myTableView.rowHeight = UITableViewAutomaticDimension
    myTableView.estimatedRowHeight = 160.0

到 Table View Controller 的 viewDidLoad 函数之一,但没有运气。

【问题讨论】:

我把这个问题标记为一个骗局,因为答案是存在的,但它超级长而且很冗长。简短回答:将上面列出的两行代码添加到您的视图或表格视图控制器中,并确保您将底部内容限制在单元格视图的底部,并将顶部内容限制在单元格顶部(除了所有其他约束) 【参考方案1】:

确保您在 tableview 单元格中设置了约束,这将强制它扩展到您想要的高度。

尤其要确保单元格顶部和“Hello”之间、“Hello”和“Language”之间以及“Language”和单元格底部之间有垂直约束。

如果这不起作用,您可以尝试在您的一个表格视图控制器中的原型单元格中执行此操作,以查看使用动态单元格的 xib 是否存在问题。

【讨论】:

谢谢迈克,这很有效。一定错过了底部最重要的最终约束。 “UITableViewAutomaticDimension”和“estimatedRowHeight”也需要存在。 我确认:您需要“UITableViewAutomaticDimension”、“estimatedRowHeight”并为表格单元格 .xib 文件中的高度设置内部约束 我还想指出,约束需要连接到顶部和底部的 contentView 而不是安全区域。 感谢 Mike 成功了 我遇到了问题,因为我有: textView.translatesAutoresizingMaskIntoConstraints = true 在我的自定义单元格类中的 UITextView 中。删除它(连同您的建议)解决了它。

以上是关于来自自定义 Xib 的表格视图中的动态单元格大小 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

一个 UIViewController 中的自定义单元格 tableview 和默认 UITableView

在表格视图单元格中使用自定义 XIB

动态调整自定义 xib 单元格的大小

如何在同一个xib中放置自定义单元格和表格视图?

UITableView 自定义单元格高度未正确管理 swift 中的动态约束

自定义表格视图单元格中没有可见视图