使用AspectFit将图像缩放为大小

问题描述 投票:0回答:3

我正在构建一个应用程序,您可以在其中拖动图像。当前看起来像这样:

enter image description here

enter image description here

您可以看到,我从图像视图中将背景颜色标记为绿色。图像视图具有contentMode AspectFit,并且比其后面的黑色视图小40像素。我希望图像是图像视图的整个长度和宽度。 contentMode应该为AspectFit,图像不会被剪切掉。是否可以调整图像大小,使其具有20像素或更大的视图空间?

ios swift uiview imageview uiimage
3个回答
1
投票

@ adri567您应该使用UIViewContentModeScaleToFill属性,如

imageView.contentMode = .scaleToFill

尝试一下!


1
投票

如果要保持图像的大小不变,但又不想拉伸图像。您的解决方案还有别的。

  1. 将图像显示为问题中的.aspectFit

  2. 您显示的绿色视图将其替换为.aspectFill中的相同图像,但尽可能模糊它看起来不错。


0
投票

简单的数学可以解决这个问题。

对于快捷方式:H->高度,W->宽度

我们知道它的一般公式是:h1 / w1 = h2 / w2

Hscreen / Wscreen = Himage / Wimage

所以我们知道屏幕宽度,图像高度和图像宽度。

我们可以将屏幕宽度设为-> view.frame.width

我们也可以通过-> image.size.width和image.size.height获得图像大小

Hscreen =(Himage)*(WScreen)/ Wimage..

您可以使用Hscreen来imageViews高度锚点。

© www.soinside.com 2019 - 2024. All rights reserved.