5

セルを One からドラッグし、TwoCollectionViewにドロップする 必要があります。CollectionView1 つの CollectionView 内でのドラッグ アンド ドロップは問題ありませんが、CollectionView One から CollectionView Two へのセルを取得するにはどうすればよいですか?

何か案は?この問題を解決したプロジェクトやフレームワークはありますか? 助けてくれてありがとう!

4

3 に答える 3

4

https://github.com/Ice3SteveFortune/i3-dragndropこれをチェックしてください - それを達成するために私が取り組んでいるヘルパーです。テーブルビューにも対応

アップデート

最近、このコードベースの 2 番目のバージョンであるBetweenKitをリリースしました。本格的なドラッグ アンド ドロップ フレームワークになりました。

それが役に立つことを願っています!

于 2013-12-07T16:49:23.083 に答える
2

わかりました、これは次の例のこれまでで最も単純なフローです:

ここに画像の説明を入力

  1. UIGestureRecognizerごとに追加しますUICollectionView
  2. すべてのジェスチャ認識エンジンを 1 つの方法で接続します。

    @IBAction func longPressGestureChanged(recognizer: UILongPressGestureRecognizer) { ... }
    
  3. のそれぞれにUIViewController追加内:@IBOutletUICollectionView

    @IBOutlet var collectionViewGreen: UICollectionView!
    @IBOutlet var collectionViewYellow: UICollectionView!
    
  4. 変更を検出するジェスチャ認識メソッドを実装します。

    @IBAction func longPressGestureChanged(recognizer: UILongPressGestureRecognizer) {
    
        let globalLocation = recognizer.locationInView(view)
    
        if CGRectContainsPoint(collectionViewGreen.frame, globalLocation) {
    
            //you cover green collection view
            let point = view.convertPoint(globalLocation, toView: collectionViewGreen)
            if let indexPath = collectionViewGreen.indexPathForItemAtPoint(point) {
               //you cover cell in green collection view
            } else {
                //you do not cover any of cells in green collection view
            }
    
        } else if CGRectContainsPoint(collectionViewYellow.frame, globalLocation) {
    
            //you cover yellow collection view
            let point = view.convertPoint(globalLocation, toView: collectionViewYellow)
            if let indexPath = collectionViewYellow.indexPathForItemAtPoint(point) {
                //you cover cell in yellow collection view
            } else {
                //you do not cover any of cells in yellow collection view
            }
    
        } else {
            //you do not cover any of collection views
        }
    }
    
于 2016-05-16T12:37:09.960 に答える