自定义Xib中的表格视图动态单元格大小

14

(警告,我是iOS新手。)我已经创建了一个自定义的Table View Cell并进行了注册,并在两个单独的Table View Controllers上实现了它。当我运行应用程序时,自定义xib内容被父Table Cell View高度截断。

我希望每个Table View都能根据自定义Table View Cell xib中内容的高度动态确定其高度。

我尝试添加

    myTableView.rowHeight = UITableViewAutomaticDimension
    myTableView.estimatedRowHeight = 160.0

尝试将代码添加到一个Table View Controller的viewDidLoad函数中,但没有成功。

自定义表格视图单元格

实现自定义xib的分离式表格视图控制器

表格视图高度1


我将这个问题标记为重复,因为答案已经存在,但是它非常冗长。简短的回答:将上面列出的两行代码添加到您的视图或表视图控制器中,并确保将底部内容约束到单元格视图的底部,将顶部内容约束到单元格的顶部(除了所有其他约束之外)。 - Sean
1个回答

20

确保在您的tableview单元格中设置了约束,以强制其扩展到所需的高度。

特别是,请确保在单元格顶部和“Hello”之间、在“Hello”和“Language”之间以及在“Language”和单元格底部之间有垂直约束。

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


4
谢谢 Mike,解决了我的问题。可能我漏看了底部非常重要的最后一个限制条件。需要同时存在 "UITableViewAutomaticDimension" 和 "estimatedRowHeight"。 - Sean
1
我确认:您需要使用“UITableViewAutomaticDimension”、“estimatedRowHeight”以及在表格单元.xib文件中设置高度的内部约束。 - Claus
1
我还想指出,约束条件需要连接到顶部和底部的contentView,而不是安全区域。 - C0D3
谢谢Mike,它起作用了。 - Ahsan
我遇到了一个问题,因为在我的自定义单元格类中有textView.translatesAutoresizingMaskIntoConstraints = true。将其移除(以及您的建议)解决了这个问题。 - MrAn3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接