BMLongPressDragCellCollectionView 3.1.4

BMLongPressDragCellCollectionView 3.1.4

idhong 维护。



  • 作者
  • liangdahong

介绍

  • 本框架是一个让你轻松实现类似支付宝的拖拽重排功能,支持自定义,iOS8+,具体可查看代码。

CocoaPods 安装

pod 'BMLongPressDragCellCollectionView'
pod install
#import "BMLongPressDragCellCollectionView.h"

手动安装

  • 下载项目 「 clone https://github.com/liangdahong/BMLongPressDragCellCollectionView.git
  • BMLongPressDragCellCollectionView 文件夹下的全部内容拖拽到您的项目。

使用说明

  1. BMLongPressDragCellCollectionView 是自 UICollectionView 扩展而来,其使用方式和 UICollectionView 一致,只需将 UICollectionView 修改为 BMLongPressDragCellCollectionView 即可【支持 Xib,Storyboard】。
  2. 原来的 UICollectionViewDataSource 替换为 BMLongPressDragCellCollectionViewDataSource
  3. 原来的 UICollectionViewDelegateFlowLayout 替换为 BMLongPressDragCellCollectionViewDelegate
  4. 实现数据源方法,内部会使用此方法获取数据源,必须实现,之所以设计为 NSArray<.ArraysOfClass objectId> * 的数据结构是因为内部要对 cell 【数据源】做排序处理。
- (NSArray< NSArray<id> *> *)dataSourceWithDragCellCollectionView:(__kindof BMLongPressDragCellCollectionView *)dragCellCollectionView;

如下:

- (NSArray<NSArray<id> *> *)dataSourceWithDragCellCollectionView:(__kindof BMLongPressDragCellCollectionView *)dragCellCollectionView {
    return self.dataSourceArray;
}
  1. 实现代理方法,当 Cell 有交换时调用,需要外部保存最新的数据源【如果有交换时,数据源已经更新】,必须实现。
- (void)dragCellCollectionView:(BMLongPressDragCellCollectionView *)dragCellCollectionView newDataArrayAfterMove:(nullable NSArray< NSArray<id> *> *)newDataArray;

如下:

- (void)dragCellCollectionView:(BMLongPressDragCellCollectionView *)dragCellCollectionView newDataArrayAfterMove:(nullable NSArray< NSArray<id> *> *)newDataArray {
    self.dataSourceArray = [newDataArray mutableCopy];
}

图文演示

Xib或者 StoryBoard 中使用

  • Xib或者 StoryBoard 中只需要上面的 3 步就可以让你的 UICollectionView 完美支持拖拽重排了。

使用纯代码实现

  • 在纯代码实现中只需要上面的 3 步 就可以让你的 UICollectionView 完美支持拖拽重排了。

更多自定义方案

如果要做一些自定义的操作可以通过设置 BMLongPressDragCellCollectionView 的相关属性或者实现一些特定的协议方法来处理,可查看 BMLongPressDragCellCollectionView 的头文件和 BMLongPressDragCellCollectionViewDelegateBMLongPressDragCellCollectionViewDataSource 协议。

联系

  • 欢迎 issuesPR
  • 也可以添加微信 进微信交流群。

其他

  • 定个小目标😂2020年08月05日 纯 Swift 正在计划中...

感谢

相关推荐

许可证

BMLongPressDragCellCollectionView 采用 MIT 许可协议发布。详见 LICENSE 文件。