我有一个表格,其中单元格的图像视图正由以前从服务器上拉下来的图像填充。所以:
[[cell imageView] setImage:[[[UIImage alloc] initWithContentsOfFile:filePath] autorelease]];
其中“filePath”是这些图像的位置。工作得很漂亮,直到我决定聪明并将视网膜显示图像添加到我的服务器。显示这些图像(显然是双倍大小),但是缩小了。我把它们标记为image@2x.png,希望iPhone能够知道如何处理它们,但显然这在这种情况下不起作用。
我看过讨论,我猜我需要对单元格imageView的contentsScale做一些事情,比如将它与屏幕比例匹配,但我不确定如何做到这一点。任何帮助表示赞赏。
答案 0 :(得分:0)
从服务器无法自动下载视网膜图像。
你需要像
这样的控件if (iphone == 4) image=img@2x.png
else image=img.png
获取正确的图像。
答案 1 :(得分:0)
您需要正确设置图像的比例因子。请检查UIImage
中的比例属性如果从其文件中加载图像 name包括@ 2x修饰符, scale设置为2.0。如果是文件名 不包括修饰语但是 在PNG或JPEG格式,并有一个 相关的DPI值,相应的 比例因子被计算和反映 在这家酒店。你也可以指定 一个明确的比例因子 从Core初始化图像 图形图像。所有其他图像都是 假设比例因子为1.0。
因此,您可以按上述方式阅读图片,从中获取CGImage
并使用+ (UIImage *)imageWithCGImage:(CGImageRef)imageRef scale:(CGFloat)scale orientation:(UIImageOrientation)orientation
创建新的UIImage。
更好的方法是检查视网膜图像的DPI,并使用图形程序将其设为144dpi。根据scale属性文档,这也可能有用。