正如很多人提示的那样,Apple SDK 中的 Retina 显示屏似乎存在一个错误,imageWithContentsOfFile 实际上不会自动加载 2x 图像。
我无意中发现了一篇很好的帖子如何制作一个检测 UIScreen 比例因子并正确加载低分辨率或高分辨率图像的函数(http://atastypixel.com/blog/uiimage-resolution-independence-and-the-iphone-4s-retina-display/),但是该解决方案加载了一个 2x 图像并且仍然具有图像设置为 1.0,这将导致 2x 图像缩放 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/