Iphone 为什么我的手机是';s图像被像素化了吗?

Iphone 为什么我的手机是';s图像被像素化了吗?,iphone,objective-c,uiimageview,Iphone,Objective C,Uiimageview,我正在使用带有视网膜显示的iPhone4 我有一个60x60 png,它是从我用作单元格图像视图的500x500 png缩小的 由于某些原因,图像看起来有点像素化和模糊,基本上不符合视网膜显示标准 我做错了什么 我使用的是cell.imageView.image=[UIImage ImageName:@“picture.png”]因为文件名不在base@2x.extformat,iOS不承认它应该使用2的比例因子。有两种解决方案: 最好是提供两个版本的图像:一个用于非视网膜显示器,命名为pict

我正在使用带有视网膜显示的iPhone4

我有一个60x60 png,它是从我用作单元格图像视图的500x500 png缩小的

由于某些原因,图像看起来有点像素化和模糊,基本上不符合视网膜显示标准

我做错了什么


我使用的是
cell.imageView.image=[UIImage ImageName:@“picture.png”]

因为文件名不在
base@2x.ext
format,iOS不承认它应该使用2的比例因子。有两种解决方案:

最好是提供两个版本的图像:一个用于非视网膜显示器,命名为
picture.png
,另一个用于视网膜显示器,命名为
picture@2x.png
。您仍将使用
[UIImage ImageName:@“picture.png”],当设备有视网膜显示器且有一个名为
picture@2x.png
它需要使用它

黑客解决方案(这将使您的图像在非视网膜设备上显示两倍大)是这样做的:

cell.imageView.image = [UIImage imageNamed:@"picture.png"];
cell.imageView.image.scale = [UIScreen mainScreen].scale;

我建议采用
@2x
的方式,这就是应该采用的方式。

尝试使用60x60 png作为源代码。它可能会解决你的模糊问题,并且会在内存使用上更便宜

我也经历过调整大小的图像变得模糊之类的事情。我可以想象,这与运行时图像缩小有关,尽管我不确定这一点

还请记住,建议提供两个版本的图像文件:

  • 一个用于普通分辨率(iPhone 3G、3GS…):picture.png用于您的手机壳:30x30px

  • 一个用于视网膜显示器(iPhone 4):picture@2x.png对于您的情况:60x60px


图片文件已经是60x60。它在运行时没有被缩小。好的,那么你应该可以只遵循@2x命名约定:)关于这个主题,“点与像素”一节是推荐阅读的:)谢谢朱利安,我刚刚做了,并命名了它”picture@2x.png,但现在图像在单元格中非常小。也许60x60对视网膜来说太小了?如果我的row.height=70,它应该是什么大小?70是以点为单位的高度,所以我想110-120px的区域应该是合适的。再次,我真诚地建议您阅读我发布的文章:)刻度是一个只读参数(至少在iOS 5.1中是这样)。黑客是UIImage*image=//如果([UIScreen main screen]scale]==2,{image=[UIImage imageWithCGImage:[image CGImage]scale:2方向:UIImageOrientationUp];}