我正在使用带有视网膜显示屏的iPhone 4。
我有一个60x60的png从500x500 png缩小,我用作单元格的imageView。
出于某种原因,图像看起来有点像素化和模糊,基本上达不到视网膜显示标准。
我做错了什么?
我正在使用cell.imageView.image = [UIImage imageNamed:@"picture.png"];
答案 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
方式,这是应该如何完成的。