iPhone:预览照片

问题描述:

我正在创建照片预览应用程序 - 它包含一些照片。当我没有大量的图像时,一切都很好。该应用程序使用UIScrollView在图像之间切换,基于PageControl代码示例。iPhone:预览照片

但现在我增加了更多的图片和我有一些麻烦 - 它消耗了太多的内存和我的应用程序开始得到应用的警告时,我的图片之间进行切换,它的工作速度太慢。

有没有办法来优化我的浏览器支持大量的图像文件?我想要实现类似于iPhone Photos应用程序的功能 - 首先是加载低详细图像,然后切换到中等细节,最后细化为高细节。这是如何完成的?

预先感谢您。

如果内存问题最近才当你添加更多图片到你的应用程序开始,那么我会大胆地猜测,要么你同时加载所有你的图像到应用程序(这将吃掉内存有限快速)或者你的应用程序正在泄漏内存。

如果你同时加载所有的图像,更有效的方法是只加载当前图像,并和之前所示的后显示可能的影像。如果这是你已经采取的方法,检查内存泄漏。

至于开始低分辨率和逐渐随着分辨率的增加更清晰的图像;我不知道苹果公司提供的任何操作,但它应该是一个相当容易完成的过程。创建图像的平铺,并在平移/缩放时使用平铺。当运动停止时,再次显示高分辨率图像。

iPhone上的照片应用程序采用此方法的原因可能是两方面:一是平移和缩放低分辨率图像时,应用程序的性能会更好;当您停止移动图像时,您只需要看到高分辨率图像。其次,设备上的电池会取较小的命中功率明智的应用程序执行以下工作时(即,摇摄/缩放低分辨率图像不断,而不是高分辨率的一个)。

一种解决方案可能会确保你只加载图像当前页,下一页和前一页。这样,如果你有大量的图像,你不会试图同时将它们全部保存在内存中。

就低细节到高细节效果我不确定苹果是如何做的,但你可能会加载低细节,然后在滚动视图委托-scrollViewDidEndDeclerationg可能会启动一个短计时器加载高分辨率的图像,如果人留在图像足够长的时间。当滚动视图再次开始移动时,它可能会失效。