正常图像下载视网膜设备图像(2x)
当我们需要从某个URL下载图像并在两种设备上显示 – Retina(带有2x图像)和常规设备 – 我们是否应该有两个不同的图像URL来处理这个问题?
对于资源包中的图片,我们保留xyz.png和xyz@2x.png并且工作正常。
对于我们从服务器获取的图片,我们是否需要为这两种图片分别创build图片url,并使用相同的命名约定(xyz.png和xyz@2x.png)在本地进行caching?
请在这里扔一些光。
你可以检查设备是否有高分辨率的视网膜显示,并根据其下载不同的图像。 不要打扰照片和东西,你会扩大规模的接口。
您可以使用创build缩放版本的下载图像
UIImage *image = //download... image=[UIImage imageWithCGImage:[image CGImage] scale:2.0 orientation:UIImageOrientationUp];
请记住,缩放后的100×100图片将成为50×50的图片(2.0比例)。
首先检查是否有视网膜显示
BOOL retina = NO; if([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) retina = [[UIScreen mainScreen] scale] == 2.0 ? YES : NO;
CGFloat screenScale = [UIScreen mainScreen]. UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:myUrl] scale:screenScale];