I'm implementing drag and drop. Most of the drag sources and destinations in the app are custom views, so I just use UIDragInteraction and UIDropInteraction. However, one drag source is a collection view, so I use UICollectionView's own dragging support via UICollectionViewDragDelegate.
The issue is that when the drag is done, I need to know if it finished successfully or was cancelled/aborted. UIDragInteractionDelegate has a dragInteraction(_:, session:, didEndWith:) method where the last argument is a UIDropOperation (e.g. .copy , .cancel, etc.), and in most source, I can use this to do the appropriate thing depending on whether the drop was successful.
By contrast, UICollectionViewDragDelegate's corresponding collectionView(_:, dragSessionDidEnd:) doesn't include the drop operation. Am I missing something or is there no way to know how the drag ended if you're using UICollectionViewDragDelegate instead of implementing UIDragInteractionDelegate directly? I'd really rather not duplicate the implementation work UICollectionView already has to make dragging easy just for this one little thing.