我有一个UITableViewCell
,其中包含一个UIStackView
,其视图垂直堆叠。我已将UITableViewAutomaticDimension
设置为UITableView
的行高和估计高度。 UIStackView
的一个子视图包含两个UIImageViews
,如下所示:
一个是avatarImageView
,一个是messageImageView
。这里是约束:
avatarImageView
:
messageImageView
:
然后,我正在尝试使用cellForRowAt
的委托方法来更新messageImageView
的高度以匹配图像比例(并且让图像视图的宽度为200px)。 / p>
let ratio = image.size.width / image.size.height
cell.messageImageViewHeightConstraint?.constant = 200 * ratio
我正在尝试使用此图片作为示例:
但是它根本不起作用,图像占用了太多空间,并且由于某种原因,化身图像视图最终被隐藏了(该单元格被红色包围,在其上方是一个只有文字才能正常工作的单元格):
那我在这里想念什么?
感谢您的帮助!
答案 0 :(得分:1)
您的ratio
与您的使用方式相比是相反的:
最简单的解决方法是除以ratio
,而不是乘以它:
let ratio = image.size.width / image.size.height
cell.messageImageViewHeightConstraint?.constant = 200 / ratio
或根据需要更改ratio
计算:
let ratio = image.size.height / image.size.width
cell.messageImageViewHeightConstraint?.constant = 200 * ratio