如何在视图中正确缩放图像(而不是资源)到iPhone Retina?

时间:2011-07-07 21:27:35

标签: iphone resize uiimage scale retina-display

我有一个UIImage,来自任一设备的相机或从URL下载。说分辨率是800x600。

我想在UIImageView中显示200x150的缩放图像,并且我有一个合适的图像缩放代码。

所以,我只是将UIImage缩放到UIImageView的frame.size(再次,200x150)。在非视网膜显示器上它看起来没问题,但在视网膜显示器上看起来很糟糕,就像放大一张较小的图片一样,因为实际的像素框架是400x300。

问题是 - 当我调整大小时,我应该手动将frame.size.width / height乘以2,当它是视网膜显示时,所以它会被调整为400x300,或者是内置的这个功能?

由于UIImage不是设备上的资源,因此我没有@2x选项。

2 个答案:

答案 0 :(得分:5)

在所有情况下,将图像视图的帧大小保持在200x150。 在非视网膜显示器的情况下,将图像缩放到200x150。在视网膜显示设备上将其缩放到400x300。将contentMode的{​​{1}}设置为UIImageView

答案 1 :(得分:0)

当你得到800x600的图像时,你不能制作一个缩放到400x300的UIImage,并用@ 2x扩展名暂时保存它,可能是Documents文件夹或tmp文件夹,然后保存另一个缩放到的UIImage 200x150并保存在没有@ 2x的同一目录中。