JWInfiniteCollectionView 0.1.2

链接到 JWInfiniteCollectionView 0.1.2

Jiang Wang 维护。



链接到 JWInfiniteCollectionView 0.1.2

JWInfiniteCollectionView

CI Status Version License Platform

有时,当显示的数据有限时,应用程序的 UX 设计师想要让其中一个集合视图实现无限滚动。当用户滚动到数据集的底部时,第一份数据会重新出现在屏幕上;如果用户向另一方向滚动,最后一份数据会重新出现在屏幕上。传统上,实现无限 UICollectionView 的解决方案是使用一个大的重复数据集(例如,原始数据集的 1000 倍)来欺骗用户相信集合视图是无限的。

但是,一个大的重复数据集不可避免地会引入大量的 UICollectionViewLayoutAttributes,因此会引入额外的开销。此外,如果用户对滚动你的集合视图感到非常无聊,一整天都坐在那里滚动呢?这种事情发生的可能性可能很小,但毕竟,拥有一个大的重复数据集不是一个非常优雅的解决方案。

JWInfiniteCollectionView 只在数据集的开始和结束处额外添加少量重复项。这样做可以避免大多数由大型重复数据集引入的额外开销,如果不是全部的话。

无限滚动的原理

无限滚动是通过在原始数据集(黑色矩形)的左侧和右侧(棕色矩形)添加额外的项来实现的,从而得到更大的可滚动区域;这类似于具有大的重复数据集,但区别在于数量。

  • 开始时,集合视图的内容偏移量计算为仅显示原始数据集(绘制在黑色矩形中);
  • 当用户向右滚动,内容偏移量达到触发值时,我们将内容偏移量重置以显示相同的外观效果;但实际上显示的是填充数据集;
  • 当用户向左滚动时,使用相同的逻辑。
infinite scrolling

有关更多详细信息,您可以阅读此博客文章

示例

要运行示例项目,请先克隆仓库,然后从Example目录运行pod install

infinite scrolling

要求

  • iOS 8.0+
  • ARC

特性

完成

  • 水平无限滚动
  • 简单的自定义流式布局
  • 添加一个无限开关标志,以便在普通集合视图和无限滚动集合视图之间切换

待办事项

  • 自定义流式布局子类别,以自定义集合视图单元布局属性
  • 添加更多可能的测试

使用CocoaPods安装

CocoaPods 是iOS或OSX应用的依赖关系管理器,它自动并简化了在项目中使用第三方库的过程。更多信息请参阅“开始使用”指南。您可以使用以下命令进行安装:

$ gem install cocoapods

Podfile

要将 JWWaveView 整合到您的 Xcode 项目中,使用 CocoaPods,只需在您的 Podfile 中添加以下行

pod 'JWInfiniteCollectionView'

然后,运行以下命令

$ pod install

作者

Alex1989Wang,[email protected]

许可证

JWInfiniteCollectionView 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。