如何相对于原始图像大小比设置 UIimageview 宽度
Posted
技术标签:
【中文标题】如何相对于原始图像大小比设置 UIimageview 宽度【英文标题】:how to set UIimageview width with respect to the original image size ratio 【发布时间】:2012-10-25 13:41:37 【问题描述】:在我的 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.
最后图像视图应该在视图的中心
如何实现
【问题讨论】:
【参考方案1】:有几种方法可以实现这一目标。最简单的就是在Interface Builder中将image view上的缩放模式设置为Aspect Fill,或者
imageView.contentMode = UIViewContentModeScaleAspectFit;
第二种方法是计算图像的纵横比并设置宽度。比如:
UIImage *myImage = [UIImage imageNamed:@"MyImage"];
float aspectRatio = myImage.size.width / myImage.size.height;
float viewWidth = 100 * aspectRatio;
【讨论】:
【参考方案2】:这取决于你的逻辑。
你可以得到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;
【讨论】:
以上是关于如何相对于原始图像大小比设置 UIimageview 宽度的主要内容,如果未能解决你的问题,请参考以下文章