iphone - 如何沿滚动动态加载带有项目的 iOS iCarousel

标签 iphone ios reloaddata icarousel

我在本地存储中有大约 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/

相关文章:

ios - 如何使用音乐播放器的 UI 在 iOS 中播放音频?

iphone - Quality Core Data with NSFetchedResultsController 教程保存 TableView 状态

iphone - 在sharekit中获取facebook和twitter的用户id

ios - 使用imageView自定义navigationbar时存在Gap

ios - 如何使用 Swift 检测和更改 ios 应用程序语言?

iphone - objc_property_t iOS 问题

iphone - 将实时 iPhone 应用程序从现有的苹果开发者帐户转移到另一个有间隔期的帐户

swift - 未调用索引路径中行的 UITAbleview 单元格

ios - 报告 UITableview reloadData 崩溃

swift - UITableview 在重新加载时滚动到顶部