【发布时间】:2019-06-06 09:27:26
【问题描述】:
在我的 UITableViewCell 中,我有一个 UIImageView 异步下载图像(使用 Kingfisher 库)。它与 Instagram 非常相似。
我正在使用自动布局,我想使用UITableView.automaticDimension 来表示行高。我应该如何设置约束以使单元格的高度根据图像变得更高或更短?如果我为UIImageView 设置初始约束并在下载图像后更改它,我至少有一个元素会更改其高度以“填充”UIImageView 添加(或删除)的空间。
【问题讨论】:
-
您需要根据图片的高度手动计算每个单元格的高度。
-
那真是一团糟。但是,我应该在哪里设置新高度?
-
你必须在
tableView(_:heightForRowAt:)方法中传递它。 -
实际高度是在单元格内部和调用 tableView(_:heightForRowAt:) 之后计算的。每次刷新整个tableView是唯一的选择吗?
-
是的。这是下载图像后根据图像获取单元格高度的唯一选项。否则,您必须在 API 本身中接受图像的 aspectRatio。
标签: ios swift uitableview autolayout