如何使用AutoLayout在一个UITableView中使用两个原型设置UITableViewCell的AutoHeight?

时间:2017-05-15 17:19:06

标签: ios swift uitableview autolayout uikit

我有UITableView和两个单元格原型。它看起来像:

enter image description here enter image description here

我知道,对于autoheight,我需要添加一些约束,tableView.rowHeight = UITableViewAutomaticDimension等。我已经在另一个控制器中完成了它。但实际上我找不到(我已经找了很长时间),如何在一个tableView中使用2个原型做同样的事情?

所以,问题是:如何使用Autolayout(而不是height for row at index path)?或者也许我应该使用一些库,比如IGListKit等?

2 个答案:

答案 0 :(得分:2)

图像表示您有一些无效/不完整的约束。如果您修复了这些,自动调整大小应该可以正常工作。

答案 1 :(得分:1)

您无需任何代码即可实现自动维度,您只需在tableView.estimatedRowHeight = 440中设置viewDidLoad()即可在代码中执行操作。任何正数都可以用于估计的行高。

在情节提要中,您必须使用布局约束确保单元格布局在自上而下的方向上不会中断。例如,在您发布的图像中,左侧和右侧的两个图像视图必须与contentView顶部(或其边距)保持一定距离。对于图像视图,还需要定义它们的高度。标签' date'应该与图像有一定距离,然后到contentView的底部(或其边距)距离,因此从顶部到底部的布局不明确。

请注意,如果您使用的是UILabel,则根据标签文本,隐含并计算宽度和高度。为了达到用例的最佳效果,内容压缩阻力优先级和拥抱优先级也可能对您有用。