我有一个scrollView,显示由url设置的图像。现在我只希望将可见图像和上一个和下一个图像预先加载到scrollView上以减少内存使用量。我该如何做到这一点?
答案 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是最右边的一个并且是预先加载的。
当到达图像列表的末尾时,意味着当显示第一个或最后一个图像时,我分别在最左侧或最右侧放置一个虚拟视图,这是一个简单的文本视图,显示“没有更多的图像”。
不幸的是我无法分享该代码。