如何动态加载带有项目的iOS iCarousel

时间:2013-07-11 09:38:49

标签: iphone ios reloaddata icarousel

我在本地存储上有大约200多个项目,我应该在iCarousel中显示。

我知道我可以更新我的数据模型数组并调用[carousel reloaddata]。但我不想仅为此包含任何控制。我想将此作为最后选择,因为这将在重新加载时包含一些视觉闪烁。

理想情况下,我想在滚动本身时这样做。像:

  • 我可以在我的数据源数组中保留大约20个项目
  • 我可以用这20个
  • 填充旋转木马
  • 当用户滚动时,在某些时候,我清空数据源数组
  • 清空轮播并致电reloadData以使用较新的项目进行更新
  • 用户不应该意识到重新加载发生了。

简而言之,在不消耗太多资源的情况下,我希望旋转木马滚动顺畅无缝。

我应该捕获哪些iCarousel事件以及什么时候?

我应该重新使用相同的项目视图还是删除现有资源并重新开始使用新数据?

P.S。

另一方面,有没有人知道旋转木马一次可以支持多少项目视图,并考虑到内存? 在单个项目视图中,我有2个UILabel,1个图像(每个项目视图不同)和1个背景图像(每个项目视图相同)。任何人都可以估计我的旋转木马在给定时间可以支持的总可能项目视图吗?如果它可以是大约100,那么我可以承受100后的重载闪烁。但是我不想在滚动20之后就拥有它。

1 个答案:

答案 0 :(得分:2)

不会加载200个视图。滚动时,系统会要求您提供视图并给出索引。如果提供了可重用的视图,请使用它。如果没有,请创建一个新的。您应该告诉旋转木马有多少视图(200 +,而不仅仅是10,然后更改)。如果您正确地重用视图,轮播将管理内存。您可以运行测试,记录每个视图的指针,并查看重用视图时有多少唯一身份。它应该接近任何时候可以在屏幕上显示的视图数量。