正如许多人提示的那样,在用于视网膜显示屏的Apple SDK中似乎存在一个错误,并且imageWithContentsOfFile实际上不会自动加载2x图像。
我偶然发现了一篇不错的文章,介绍如何制作一个可以检测UIScreen比例因子并正确加载低分辨率或高分辨率图像(http://atastypixel.com/blog/uiimage-resolution-independence-and-the-iphone-4s-retina-display/)的函数,但是该解决方案加载了2x图像,并且图像的比例因子仍设置为1.0和结果是2倍的图像缩放了2倍(因此,它比看起来要大4倍)
imageNamed似乎可以准确地加载低分辨率和高分辨率图像,但对我来说是没有选择的。
是否有人不使用自动加载imageNamed或imageWithContentsOfFile来加载低/高分辨率图像的解决方案? (或者最终解决方案如何使imageWithContentsOfFile正常工作)
最佳答案
好的,迈克尔在这里找到的实际解决方案:
http://atastypixel.com/blog/uiimage-resolution-independence-and-the-iphone-4s-retina-display/
他发现UIImage具有方法“initWithCGImage”,该方法也将比例因子作为输入(我想这是您可以自行设置比例因子的唯一方法)
[UIImage initWithCGImage:scale:orientation:]
这似乎很好用,您可以自定义加载高分辨率图像,只需将比例因子设置为2.0
imageWithContentsOfFile的问题在于,由于它目前无法正常运行,因此即使将其修复也无法信任它(因为某些用户在其设备上仍会使用较旧的iOS)
关于objective-c - 如何获取[UIImage imageWithContentsOfFile :] and High Res Images working,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3739812/