2017-11-15 6 views
0

セルを移動してUICollectionViewのレイアウトを更新しています。アニメーションが正しく行われている間完了ブロックはsetCollectionViewLayoutで呼び出されません

collectionView.moveItem(at: sourceIndex, to: destIndex) 

collectionView.collectionViewLayout.invalidateLayout() 

collectionView.setCollectionViewLayout(collectionView.collectionViewLayout, animated: true) 
{ (done) in 
     print("i'm here") 
} 

しかしsetCollectionViewLayoutの完了ブロックは、呼び出されることはありません。

ありがとう

+0

そして、私は最終的にmoveItemが既にアニメーションを行うので、私はsetCollectionViewLayoutを必要としないことが判明... – Max

答えて

0

編集:

BallpointBenは正しいです - 構造の変更が必要とされていません。

私はあなたが既存レイアウトに新しいレイアウトを設定しているので、あなたが完了ブロックを取得しない理由があると信じています。したがって、実際の変更がないため、「完了」はありません。

おっと...構造は、おそらく次のようになります。

collectionView.setCollectionViewLayout(collectionView.collectionViewLayout, 
     animated: true, completion: { 
      (done) in 
      print("I'm here") 
    }) 

+1

ですOPが書いたものと同じです – BallpointBen

+0

'completion:'が必要ではありませんか? – DonMag

関連する問題