我在本地存储中有大约 200 多个项目,我应该在 iCarousel 中显示这些项目.
我知道我可以更新我的数据模型数组并调用 [carousel reloaddata]
。但我不想为此添加任何控件。我想保留它作为最后的选择,因为这会在重新加载时出现一些视觉闪烁。
理想情况下,我想在滚动过程中执行此操作。喜欢:
- 我的数据源数组中可以保留大约 20 个项目
- 我可以用这 20 个来填满轮播
- 当用户滚动时,我会在某个时候清空数据源数组
- 清空轮播并调用
reloadData
以使用较新的项目进行更新 - 用户不应该知道发生了重新加载。
简而言之,在不消耗太多资源的情况下,我希望轮播平滑无缝地滚动。
我应该捕获哪些 iCarousel 事件以及何时捕获?
我应该重复使用相同的项目 View 还是删除现有数据并使用新数据重新开始?
附言
附带说明一下,考虑到内存,有谁知道轮播一次可以支持多少个项目 View ? 在单个项目 View 中,我有 2 个 UILabel、1 个图像(每个项目 View 不同)和 1 个背景图像(每个项目 View 相同)。任何人都可以估计我的轮播在给定时间可以支持的总可能项目 View 吗?如果它可以是大约 100,那么我可以承受 100 之后的重新加载闪烁。但是我不想在滚动 20 之后就拥有它。
最佳答案
不会加载 200 个 View 。当您滚动时,系统会要求您提供 View 并给出索引。如果提供了可重用的 View ,请使用它。如果没有,请创建一个新的。你应该告诉轮播有多少 View (200+,不只是 10 然后改变)。如果您正确地重用 View ,轮播将管理内存。您可以运行测试,记录每个 View 的指针,并查看在重用 View 时有多少唯一值。它应该接近任何时候屏幕上可以显示的 View 数。
关于iphone - 如何沿滚动动态加载带有项目的 iOS iCarousel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17590029/