我正在下载大量图像以显示给用户。
这些图像中的每一个都有 512x512。
在普通分辨率的 iPhone 中,一切正常,
但在 iPhone4 中,它们似乎是按比例缩放的。
如果这些图像是从资源中获取的,
我只需@2x
在图像名称中添加一个,一切都会正常工作,
问题是这些图像是从网络动态加载的。
如何防止这个 UIImageViews 在视网膜显示器上放大?
编辑:这是截图:
谢谢你们。
我正在下载大量图像以显示给用户。
这些图像中的每一个都有 512x512。
在普通分辨率的 iPhone 中,一切正常,
但在 iPhone4 中,它们似乎是按比例缩放的。
如果这些图像是从资源中获取的,
我只需@2x
在图像名称中添加一个,一切都会正常工作,
问题是这些图像是从网络动态加载的。
如何防止这个 UIImageViews 在视网膜显示器上放大?
编辑:这是截图:
谢谢你们。
看看这段代码 - 当我想控制是否使用 scale=2 或 scale=1 加载图像时,我在 UIImage 类别中使用它...查看 NSData 获取文件内容的位置(在我的代码中)并替换使用您从网络上获取图像的代码:
if ( [[[UIDevice currentDevice] systemVersion] intValue] >= 4 && [[UIScreen mainScreen] scale] == 2.0 ) {
if ( [[NSFileManager defaultManager] fileExistsAtPath:path] ) {
return [self initWithCGImage:[[UIImage imageWithData:[NSData dataWithContentsOfFile:path]] CGImage] scale:2.0 orientation:UIImageOrientationUp];
}
} else [ load here the image via imageWithContentsOfFile or whatever ]
所以诀窍在于 UIImage 类的“initWithCGImage”的“scale”参数,如果你正在加载高分辨率图像,则传递 2.0,或者如果你正在加载低分辨率图像,则传递 1.0 - 这就像你接管的最大控制高分辨率图像加载。
最好的,马林
也许尝试检查设备是否具有视网膜显示,如果确实尝试缩小图像。您可以查看它是否具有视网膜显示:
if ( [[[UIDevice currentDevice] systemVersion] intValue] >= 4 && [[UIScreen mainScreen] scale] == 2.0 ) {
//do the scaling of image(s)
}
让我知道这是否有用。