我有一个显示由url设置的图像的scrollView。现在我只想将可见图像和上一张和下一张图像预先加载到scrollView上以减少内存使用量。我该如何做到这一点?从UIScrollView中删除'隐藏'的图像
回答
如果您使用UITableView
而不是UIScrollView
,则可以创建自己的UITableViewCell
类型,在其内容中加载1个图像。
好处是只有可见的UITableViewCells
(当前显示在设备屏幕上的那些)被加载到系统内存中,所以它不会使用太多的资源。
Here是您可以在互联网上找到的许多CustomCell教程之一。
当我做同样的事情时,我创建了3倍大小的UIScrollView。足够大以容纳3张图像,即当前显示的图像和右下角的下一个兄弟图像。
如果这些图像之前没有加载过,则会预加载这些图像。所以用户有一些流畅而敏感的外观&的感觉。
当用户滚动到下一个,他只能滚动一个,然后我重新排列视图。可以说图像1,2和3在滚动视图中,而2是可见的,所以1,2(和3)被(预)加载。用户向右滚动。图像3将可见。只要它变得完全可见,我再次将滚动视图的可见矩形设置到中间。现在图像2是最左边的一个,图像3可见并且图像4被放置为最右边并且预先加载。
当到达图像列表的末尾时,即显示第一个或最后一个图像的末尾,然后我在最左边或最右边放置一个虚拟视图,这是一个简单的文本视图,显示“没有更多图片”。
很抱歉,我无法分享该代码。
是的,我有这样的东西已经工作,我的问题是删除图像不可见..太糟糕了,你可以我不会分享一些代码,因为这对我来说真的很有帮助 – Daantjeeuh 2013-04-23 12:03:30
不,这段代码并没有什么帮助,因为它“嵌入”了一些相当困难的商业逻辑,并且我在那里犯了一些概念错误,因为那是我的第一个真正的应用程序。你有什么问题去除图像?我使用了某种应用程序内部缓存,我将它们保存在字典中,当内存警告进入时,我删除该字典中最旧的一半。与此同时,我学会了更好的缓存解决方案。但是,除去它们的具体问题是什么? – 2013-04-23 12:46:27
- 1. 从DataGridViewImageColumn中隐藏图像
- 2. 从UIScrollView中删除所有子视图?
- 3. 如何从HTML画布中取出,隐藏,移除或删除图像?
- 4. 从PreferenceScreen中隐藏/删除ListPreference
- 5. 从KeystoneJS URL中删除/隐藏Mongo ObjectID
- 6. UIScrollview删除隐藏字段之间的空格
- 7. 从UIScrollView中删除UIImageView
- 8. 从UIScrollView中删除按钮
- 9. 从图库中隐藏图像
- 10. 删除隐藏图像的“空白区域”
- 11. 删除/隐藏TinyMCE调整图像元素的拖动控点
- 12. xamarin andriod ExpandableListView:从组中删除或隐藏子视图
- 13. 从UIImageView中删除图像
- 14. 从图像中删除行
- 15. 从UICollectionViewController中删除图像
- 16. 从IKImageView中删除图像
- 17. 从UI中删除图像
- 18. 从NSMutableArray中删除图像
- 19. 从图像中删除卷
- 20. 从MediaRouteControllerDialog中删除图像
- 21. 删除/隐藏DIV从网站
- 22. 从UIScrollView中移除视图
- 23. 隐藏而不移除背景图像
- 24. JavaScript或Python中的隐藏线删除?
- 25. 删除/隐藏asp:repeater代码中的列
- 26. fullcalendar中的月视图(删除/隐藏“日”和“周”视图)
- 27. 隐藏表面删除C++
- 28. 隐藏或删除Div节
- 29. jquery - 删除()后隐藏()
- 30. 删除/隐藏菜单项
你有什么试过? +可能你可以使用UICollectionView而不是“原始”滚动视图,所以将获得重用功能开箱 – Vladimir 2013-04-23 10:25:26