如何将图片(而不是其他资源)按比例缩放以适应iPhone视网膜屏幕,并在视图中正确显示?

3
我有一张UIImage,它来自设备的相机或者从URL下载。假设分辨率是800x600。
我想在一个200x150的UIImageView中显示一个经过缩放的图像,并且我有适当的图像缩放代码。
所以,我将UIImage缩放到UIImageView的frame.size(再次,200x150)。在非Retina显示屏上看起来还不错,但在Retina显示屏上看起来很糟糕,就好像一个更小的图片被放大了,因为实际的像素大小为400x300。
问题是 - 当我调整大小时,在Retina显示器上是否应该手动将frame.size.width/height乘以2,使其调整为400x300,或者是否有内置功能可以处理这个问题?
由于UIImage不是设备上的资源,因此我没有@2x选项。

为什么要手动缩放?UIImageView会自动为您缩放。 - user142019
因为我需要在放置之前进行操作。而且,在缩放后的图像上进行操作更快。 - elado
2个回答

5

在所有情况下,保持图像视图的框架大小为200x150。对于非Retina显示器,请将图像缩放到200x150。在Retina显示设备上将其缩放到400x300。将UIImageViewcontentMode设置为UIViewContentModeScaleAspectFit


好的,所以实际上我需要手动使用 [[UIScreen mainScreen] scale] 来乘以大小。我以为有内置的东西。谢谢。 - elado

0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接