为什么我的细胞图像被像素化?

时间:2011-06-01 20:30:41

标签: iphone objective-c uiimageview

我正在使用带有视网膜显示屏的iPhone 4。

我有一个60x60的png从500x500 png缩小,我用作单元格的imageView。

出于某种原因,图像看起来有点像素化和模糊,基本上达不到视网膜显示标准。

我做错了什么?

我正在使用cell.imageView.image = [UIImage imageNamed:@"picture.png"];

2 个答案:

答案 0 :(得分:1)

尝试使用60x60 png作为来源。它可能会解决您的模糊问题,并且在内存使用方面会更便宜。

我也经历过调整大小的图像模糊和喜欢。我可以想象,这有些东西与图像在运行时缩小,但我不确定。

另请记住,建议您提供两个版本的imagefile:

  • 正常分辨率(iPhone 3G,3GS ...):picture.png适用于您的情况:30x30px

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

答案 1 :(得分:0)

由于文件名不符合base@2x.ext格式,因此iOS无法识别它应使用比例因子2.有两种解决方案:

最好是提供两个版本的图像:一个用于非视网膜显示,其名称为picture.png,另一个用于视网膜显示的两倍,名为picture@2x.png。您仍然会使用[UIImage imageNamed:@"picture.png"];,当设备具有视网膜显示时,iOS会自动发出通知,并且有一个名为picture@2x.png的文件需要使用它。

hacky解决方案(会使你的图像在非视网膜设备上出现两倍大)就是这样做:

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

我建议采用@2x方式,这是应该如何完成的。