UIImage在自我调整UITableViewCell拉伸大小

时间:2017-04-04 13:59:03

标签: ios swift uitableview uiimageview tableviewcell

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

从图像中可以看出,单元格中有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. bottomMargin = text.bottom
  12. text.top = topMargin + 16
  13. 如何解决此问题,以免图像拉伸?如果需要任何其他信息,请询问,我将添加它。

    由于 -Jorge

2 个答案:

答案 0 :(得分:1)

为与其宽度匹配的图像添加高度约束,以便保持其方形纵横比。或任何高度,只需修复高度,使其不伸展

Image.height = SuperView(单元格内容).width * 0.4

答案 1 :(得分:0)

对于我刚刚创建的应用,tableViewCells和图像显示类似的内容,在将单元格从屏幕上滚动回到视图后会拉伸。

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

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