在UIScrollView中嵌入的UIImageView中加载20MB png

时间:2010-11-11 05:24:30

标签: iphone xcode uiscrollview uiimageview

我有一个大的png图像,我需要缩放和移动。 因此,我创建了一个UIScrollView并嵌入了一个UIImageView。

该应用程序在模拟器中运行良好,但在设备上运行时(8GB iPod Touch),一旦加载视图就会崩溃。

我尝试使用较小的测试图像(4MB)工作正常,并怀疑iPod无法处理20MB PNG。我还尝试了不同的其他格式,例如JPG(在各种保存模式中),但这也没有帮助。

有什么线索可以解决这个问题吗?

3 个答案:

答案 0 :(得分:3)

哎呀,20M是一张大图。想到的第一个想法是你可以把图像骰子化吗?即而不是一个图像有一大堆小图像,它们共同构成了更大的图像。然后你可以像谷歌地图下载图像方块一样按需加载。

答案 1 :(得分:2)

查看来自苹果的ScrollViewSuite Example。听起来和你想做的完全一样。

  

3_Tiling演示:

     
      
  • 如何将UIScrollView子类化以添加内容平铺
  •   
  • 重用磁贴以优化性能和内存使用
  •   
  • 更改内容的分辨率以响应缩放
  •   

答案 2 :(得分:0)

我建议使用示例Photoscroller。它演示了CATiledLayer,您可以使用它来平铺图像,甚至使用较小的图像作为lod图像。它比完整的ScrollViewSuite示例小得多,但拥有您需要的所有功能。它只包含2个类,您可以在项目中使用这些类进行少量编辑。

您可能需要查看WWDC 2010 Session#104“使用滚动视图设计应用程序”......他们会处理并解释该示例。

您需要平铺图像。我建议imagemagick:)