【问题标题】:How to make UIImageView load retina and non-retina images如何让 UIImageView 加载视网膜和非视网膜图像
【发布时间】:2012-08-22 23:28:35
【问题描述】:

我是 iOS 编程新手,我不知道如何根据运行应用程序的屏幕使 UIImageView 加载内容。就我而言,我有一个 100 帧的动画。是否可以使用代码自动缩放非视网膜显示器的图像(图像为 640x960 分辨率)?谢谢!!

【问题讨论】:

    标签: xcode uiimageview uiimage retina-display


    【解决方案1】:

    是的。只需在您的项目(image1.png,image2.png,...)和您的视网膜版本(image1@2x.png,image2@2x.png,...)中添加普通图像。视网膜版本必须在名称末尾附加“@2x”。

    只需在您的代码中使用不带“@2x”的版本,其余的由 Xcode 完成。此外,您可以只导入“@2x”版本,在代码中使用不带“@2x”的图像,iOS 将在非视网膜设备中自动下采样。

    【讨论】:

    • 好的,谢谢!但是我无法在我的 iPhone 3GS 上运行动画,当它加载图像时会崩溃。它在模拟器上运行。我不知道视网膜 iDevice 是否可以工作,因为我没有。
    • 这是内存问题,因为您要加载 100 帧然后制作动画,因此 3GS 设备会出现内存不足的问题。我的应用程序也遇到了相同类型的问题。然后我必须部分加载图像,即必须在 10-10 个图像束中加载图像:)
    • 是的,这是内存问题...当我返回上一个视图时如何释放 UIimageview(它是一个基于导航控制器的应用程序)。谢谢!
    • 如果你使用 ARC,你的 UIImageView 会自动释放。如果没有,您可以使用 viewDidUnload { [yourImageView release]; }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-10
    • 2014-03-19
    • 1970-01-01
    相关资源
    最近更新 更多