如何根据原始图像大小比率设置UIimageview宽度

时间:2012-10-25 13:41:38

标签: iphone objective-c uiimageview uiimage

在我的iphone应用程序中,我需要在图像视图中设置图像。

图片视图高度始终为100像素。

we need to set the width of the image view with respect to the original image scale ratio.

即假设图像宽度X高度 300x400(原始)(4x3)

我们显示的图片视图图片尺寸为 75X100

图像宽度X高度 512x512(原始)(1x1)

我们显示的图片视图图片尺寸为 100X100

图像宽度X高度 128 x 256(原始)(1x2)

我们显示的图片视图图片尺寸为 50X100

in all those cases image view height 100pixel should be same, but the width need to varie with respect to the image ratio.

最后图片视图应位于视图的中心

如何实现

2 个答案:

答案 0 :(得分:5)

有几种方法可以实现这一目标。最简单的方法是将图像视图上的缩放模式设置为Aspect Fill in Interface Builder,或

imageView.contentMode = UIViewContentModeScaleAspectFit;

第二种方法是计算图像的纵横比并设置宽度。类似的东西:

UIImage *myImage = [UIImage imageNamed:@"MyImage"];
float aspectRatio = myImage.size.width / myImage.size.height;
float viewWidth = 100 * aspectRatio;

答案 1 :(得分:0)

这取决于你的逻辑。
您可以获得UIImage高度和宽度。

 UIImage *image = [UIImage imageNamed:@"anyImage.png"];
 float imageHeight = image.size.height;
 float imageWidth = image.size.width;

之后你可以计算imageViewWidth-。
根据您的要求 -

float value = imageHeight/100.0;
float iV_Width = imageWidth/value;