UIImage 在自我调整 UITableViewCell 拉伸

UIImage in self sizing UITableViewCell stretching

所以我有一个 tableview 设置,所以它显示一些带有图像的信息文本,文本可以变化,所以我设置了单元格自行更新其大小的约束,但是图像正在拉伸,如下所示并且我检查了内容模式是否设置为 Aspect Fit

从图像中可以看出,单元格中有 3 个视图: -标题 -正在拉伸的图像 -描述

我的约束设置如下:

  1. Title.top = topMargin
  2. Title.trailing = trailingMargin
  3. Title.leading = leadingMargin
  4. Title.height = 32

  5. Image.leading = leadingMargin

  6. Image.top = Title.bottom + 16
  7. bottom.margin = Image.bottom
  8. Image.width = SuperView(单元格内容).width * 0.4

  9. text.leading = image.trailing + 16

  10. trailingMargin = text.trailing
  11. 底边距=text.bottom
  12. text.top = topMargin + 16

如何解决此问题,使图像不会拉伸?如果需要任何其他信息,请询问,我会添加。

谢谢 -豪尔赫

为图像添加与其宽度相匹配的高度限制,以保持其方形纵横比。或者任何高度。只需固定高度,使其不会拉伸。

image.height = SuperView(content of cell).width * 0.4

对于我刚刚创建的一个应用程序,tableViewCells 和图像表现出类似的东西,在单元格滚出屏幕并返回视图后拉伸。

假设图像是从服务器(或带有图像数据的文件)中检索到的,创建一个带有比例因子的 UIImage,然后将其设置为 tableViewCell 中 UIImageView 的图像。在将其设置为 5 之前,我尝试了一些比例因子(而不是计算,因此您的结果可能会有所不同)...最好为生产代码计算,但在原型设计中,这种启发式有效:

 UIImage* scaledImage = [[UIImage alloc] initWithData:data scale:5.0f];
 // ... On MainThread
 [cell.imageView setImage:scaledImage];