UIScrollView:大图像的性能不佳

时间:2012-10-22 12:07:32

标签: ios performance uiscrollview photo-gallery

TL:DR

Apple使用什么技术使Photo.app如此快速,即使是大图像?

长版

我观看了Apple的WWDC 2010视频,了解滚动视图以了解如何复制Photo.app分页行为和低内存利用率(PhotoScroller Demo)。它运行良好,但由于图像仅在需要时加载,当我尝试分页到另一个图像时,应用程序会在JPEG解压缩时锁定。

同一视频显示了一种平铺技术以获得更好的性能,但由于我使用的是从相机拍摄并存储在应用程序中的照片,这似乎不可行(每张照片的多个副本,不同的分辨率,将占用太多空间 - 4MB对27MB)。此外,使用iExplorer我注意到Photo.apps只有每张照片的副本(它甚至没有画廊的小缩略图副本)。

Apple使用什么技术让Photos.app如此之快?如何在我的应用程序中获得相同的性能?

  

如果这应该在这里或程序员,我有点困惑,   因为问题中没有代码,但F.A.Q.说那个算法   问题是Stackoverflow的一部分,这里的标签与之匹配   更好。

2 个答案:

答案 0 :(得分:1)

因此,如果您只显示一个全屏图像,则可以执行此操作:

在WWDC11 Session 104 - 高级滚动视图技术中,他们讨论了无限滚动以及如何操作。基本思想是滚动视图,滚动后重新定位滚动视图内的(UIImage)视图,使其显示居中或任何布局约束。然后,您可以将新的UIImage加载到UIImageView。由于您只有一个UIImageView,因此内存消耗应该非常低。我不确定图像的加载时间是如何表现的。

也许将下一个UIImage预先加载到当前图像的左侧和右侧,然后在重新定位后将其加载到UIImageView中,scrollView可以在这里提供帮助。

答案 1 :(得分:0)

对于任何仍在寻找简单实现包含大量图像的滚动视图的人。

https://github.com/sumofighter666/ReusableScrollView

就像实现UITableView一样简单