如何在固定宽度的同时自动缩放UIImageView?

时间:2012-04-23 20:15:42

标签: ios uiimageview

我想在UIScrollView中显示许多不同大小的图像。我总是希望图像以300px宽的宽度显示,高度可变(以保持纵横比)。

我尝试了很多东西,但没有任何作用。我要么将图像切割成两侧,要么压扁。

有什么想法吗?

非常感谢任何代码或示例!

2 个答案:

答案 0 :(得分:1)

UIImage* image = [UIImage imageNamed: @"img.jpg"];

... image所在的位置,假设为1280 * 720px

300/1280 = 0.234375

这是我们将使用的比例因子,并将高度乘以,以匹配目标宽度300px。

0.234375 * 720 = 168.75px高度

因此,我们的1280 * 720px图像变为300 * 169px。 (四舍五入)

答案 1 :(得分:1)

iOS中有一些内置函数可以让你查看图像数据(看看Apple's Developer Notes on CGImage。对于这个例子,如果你有

UIImage *imageObj = [UIImage imageNamed:@"whatever.png"];

你可以找到身高和/或宽度CGGetImageWidth / CGGetImageHeight:

size_t pixelsWide = CGImageGetWidth(imageObj.CGImage);
size_t pixelsHigh = CGImageGetHeight(imageObj.CGImage);