AnbLnの日記

AnbLn@ぽりえすてるのブログ

【swiftライブラリ】KDDragAndDropCollectionView

このライブラリは複数のUICollectionView間でitemのやりとりを実現するクラスKDDragAndDropCollectionViewを提供します


pod try KDDragAndDropCollectionView
をターミナルで実行してテストプロジェクトを実行してみましょう

必要な処理

初期化

    let all = [firstCollectionView, secondCollectionView, thirdCollectionView]
    self.dragAndDropManager = KDDragAndDropManager(canvas: self.view, collectionViews: all)

canvasはcollectionViewたちの親ビューを指定します。大抵はself.viewでok

プロトコル採用

KDDragAndDropCollectionViewDataSourceに準拠する必要があります
ところが、collectionView.delegate = self 的な記述は必要ありません
UICollectionView <- KDDragAndDropCollectionViewという継承関係を利用して、dataSourceにプロトコル準拠を求めているからです
従ってUICollectionViewとしてのdata source、KDDragAndDropCollectionViewとしてのdata sourceを分離したい場合は、ライブラリのコードをいじる必要があります。

実装すべきメソッドは最低5つです。インデックスに対応するデータインスタンスを返す、挿入、削除、移動、データに対応するインデックスを返す、の5つ。