-1

我有一个显示由 url 设置的图像的滚动视图。现在我只希望将可见图像和上一个和下一个图像预加载到滚动视图上以减少内存使用。我该如何做到这一点?

4

2 回答 2

0

当我做同样的事情时,我创建了一个大小为 3 倍的 UIScrollView。大到足以容纳 3 张图像,即当前显示的一张以及左右两侧的下一个兄弟姐妹。

如果之前未加载这些图像,则会预先加载它们。所以用户有一些平滑和响应的外观和感觉。

当用户滚动到下一个时,他只能滚动一个,然后我重新排列视图。假设图像 1、2 和 3 在滚动视图中,并且 2 可见,因此(预)加载了 1、2 和 3。用户向右滚动。图像 3 将可见。一旦它变得完全可见,我将滚动视图的可见矩形再次设置到中间。现在图像 2 是最左边的,图像 3 是可见的,图像 4 被放置在最右边并预加载。

当到达图像列表的末尾时,即显示第一个或最后一个时,我分别在最左侧或最右侧放置一个虚拟视图,这是一个显示“没有更多图像”的简单文本视图。

不幸的是,我无法共享该代码。

于 2013-04-23T11:26:01.500 回答
0

如果您使用 aUITableView而不是 a UIScrollView,您可以创建自己的UITableViewCell类型,在其内容中加载 1 个图像。

优点是只有可见的UITableViewCells(当前显示在设备屏幕上的)被加载到系统内存中,因此不会占用太多资源。

是您可以在 Internet 上找到的众多 CustomCell 教程之一。

于 2013-04-23T10:31:40.107 回答