objective-c - 如何获取[UIImage imageWithContentsOfFile :] and High Res Images working

标签 objective-c ios4 uiimage imagenamed

正如很多人提示的那样,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/

相关文章:

ios - 带有 UIButton 的 UILabel

ios - 使用 AVCaptureSession 切换前后摄像头

ios - 哪个MagicalRecord保存方法

iphone - 如何以编程方式在 iPhone 上启动 Contacts.app

ios - 使用自动布局调整 UIImageView 的大小

objective-c - 以模态呈现 UIView 不是全屏

objective-c - Objective-C 中的普通类型转换与桥梁类型转换

iOS,如何绘制文字的动态长度?

ios - 如何在 iOS 中创建和检索新的位图

ios - 将 UIImage 添加到 EKEvent 标题