缩放 UIImageView 后如何调整大小

5
我有一个UITableViewCell,其中只包含一个UIImageView,该图像视图被约束到所有四个边缘的父视图上,以便单元格按比例缩放以适应完整图像。 UIImageView设置为缩放模式为Aspect Fit,因此大图像会调整大小以适应单元格的宽度。然而,在缩放后,UIImageView仍保持与缩放前相同的大小,单元格也因此保留了更大、未缩放的图像的大小。
在Interface Builder中是否有任何方法可以强制UIImageView的高度随着Fit属性缩小而缩小?或者,同样地,是否有任何方法通过编程告诉UIImageView调整其高度以匹配新缩放的UIImage的高度?

目前我已经放弃了自动布局来进行调整大小,并且自己编写了调整大小的代码,这不过是几行而已。然而,似乎现在的趋势是尽可能使用自动布局,所以问题仍然存在。 - Dom Vinyard
1
嗨!我知道你发表这篇文章已经有一段时间了,但是你能否分享一下你的编程解决方案呢?如果你能编辑一下你的问题并展示出来,那将会非常有帮助。谢谢! - Pranav Wadhwa
很抱歉,我已不再参与那个项目,希望有其他人能够接手。 - Dom Vinyard
1个回答

3

在将UIImageView嵌入UIStackView时,我遇到了类似的问题。我认为这是一个Bug,因为当图像视图具有AspectFit模式时,未绑定的尺寸应该调整为缩放后的图像大小而不是原始大小。

我的解决方法是:

  1. 创建带有标识符的图像视图高度约束,例如“constraintImageHeight”
  2. 在代码中将新图像放入视图后,将约束重置为计算得出的高度,例如:

    imgView.image = picture; for c in imgView.constraints { if c.identifier == "constraintImageHeight" { c.constant = picture.size.height * imgView.bounds.width / picture.size.width; break; } }


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接