从UIScrollView中删除“隐藏”图像

时间:2013-04-23 10:23:21

标签: objective-c xcode memory-management uiscrollview uiimageview

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

2 个答案:

答案 0 :(得分:0)

如果您使用UITableView而不是UIScrollView,则可以创建自己的UITableViewCell类型,在其内容中加载1张图片。

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

Here是您可以在互联网上找到的众多CustomCell教程之一。

答案 1 :(得分:0)

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

如果之前没有加载过这些图像,则会预先加载这些图像。因此,用户具有一些平滑和响应的外观和感觉。

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

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

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