通过拖放重新排序时,UICollectionViewDataSource canMoveItemAtIndexPath的作用是什么?

时间:2019-07-17 22:34:36

标签: ios uicollectionview

从iOS 11开始,UICollectionView支持使用drag-and-drop APIs进行重新排序。在collectionView:performDropWithCoordinator:的实现中,我做了这样的事情:

NSIndexPath *srcPath = [self somehowGetSourceIndexPathForDrag];
NSIndexPath *dstPath = coordinator.destinationIndexPath;
[self.dataSource moveItemAtPath:srcPath toPath:dstPath];
[self.collectionView moveItemAtIndexPath:srcPath toIndexPath:dstPath];
[coordinator dropItem:myDragItem toItemAtIndexPath:dstPath];

一切正常。不过,我发现,如果我实现canMoveItemAtIndexPath,它将被调用,但是无论我返回什么,一切都会起作用。如果我实现moveItemAtIndexPath:toIndexPath:,它将不会被调用。

那么在这种情况下使用canMoveItemmoveItem有什么意义?还是应该删除它们?

0 个答案:

没有答案