1

TL:博士

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

长版

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

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

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

如果这应该在这里或程序员上,我有点困惑,因为问题中没有代码,但常见问题解答说算法问题是 Stackoverflow 的一部分,这里的标签更好地匹配它。

4

2 回答 2

1

因此,如果您只全屏显示一张图像,您可以这样做:

在 WWDC11 Session 104 - Advanced Scroll View Techniques 中,他们讨论了无限滚动以及如何做到这一点。基本思想是滚动视图,并在滚动视图后重新定位滚动视图内的 (UIImage) 视图,使其居中或无论您的布局约束是什么。然后您可以将新的 UIImage 加载到UIImageView. 因为你只有一个UIImageView,所以它应该是相当低的内存消耗。我不确定图像的加载时间会如何表现。

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

于 2012-10-22T12:13:09.167 回答
0

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

https://github.com/sumofighter666/ReusableScrollView

就像实现 UITableView 一样简单

于 2018-06-30T21:25:03.157 回答