DraggableCollectionView 0.1

DraggableCollectionView 0.1

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布上次发布2014年12月

未声明的拥有者维护。



  • Luke Scott 和 Rex Sheng

扩展了 UICollectionView 和 UICollectionViewLayout,允许用户通过拖拽移动项。

入门

  • 包含 UICollectionView+Draggable 分类(和相关文件)。
  • 包含 QuartzCoreFramework。
  • 将在 collection view 中 draggable 设置为 true。
  • collectionViewLayout 设置为一个实现了 UICollectionViewLayout_Warpable 协议的布局(如果没有布局则回退)。对于默认的 Flow 布局(网格),使用 DraggableCollectionViewFlowLayout - 您可以在 Interface Builder 中设置此布局。
  • 实现 UICollectionViewDataSource_Draggable 扩展协议。

工作原理

它的工作方式与 UITableView 类似。扩展协议包含与 UITableViewDataSource 协议中找到的拖拽相关的方法。当用户抬起手指时,只调用一次 moveItemAtIndexPath:toIndexPath 方法。这是通过修改 layoutAttributesForElementsInRect 方法的输出来实现“扭曲”单元格的。这允许您在不触摸数据源的情况下物理移动单元格。

自定义布局

此扩展可以与大多数自定义布局一起工作,只需实现 UICollectionViewLayout_Warpable 协议。实现这种协议的一个简单方法是创建您的布局子类,并将 layoutAttributesForElementsInRect 的输出通过 LSCollectionViewLayoutHelper 传递。有关如何做到这一点的示例,请参阅 DraggableCollectionViewFlowLayout - 您可以从那里复制粘贴。 DraggableCollectionViewFlowLayout 包含在为 Apple 的默认 UICollectionViewFlowLayout。还有 CircleLayoutDemo,用于 2012 年 WWDC 的 Apple CircleLayout 示例。

许可证

DraggableCollectionView 可在 MIT 许可证 下使用。