1

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

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

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

  • 我可以在我的数据源数组中保留大约 20 个项目
  • 我可以用这 20 个装满旋转木马
  • 当用户滚动时,在某些时候,我清空数据源数组
  • 清空轮播并调用reloadData以更新新项目
  • 用户不应该知道发生了这种重新加载。

简而言之,在不消耗太多资源的情况下,我希望轮播滚动流畅无缝。

我应该捕获哪些 iCarousel 事件以及何时捕获?

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

附言

附带说明一下,有没有人知道轮播一次可以支持多少项目视图,并考虑内存?在单个项目视图中,我有 2 个 UILabel、1 个图像(每个项目视图不同)和 1 个背景图像(每个项目视图相同)。任何人都可以估计我的轮播在给定时间可以支持的总可能项目视图吗?如果它可以是 100 左右,那么我可以承受 100 之后的重新加载闪烁。但我不想在滚动 20 之后拥有它。

4

1 回答 1

2

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

于 2013-07-14T11:31:43.577 回答