---
title: UICollectionViewDragDelegate
framework: uikit
role: symbol
role_heading: Protocol
path: uikit/uicollectionviewdragdelegate
---

# UICollectionViewDragDelegate

The interface for initiating drags from a collection view.

## Declaration

```swift
@MainActor protocol UICollectionViewDragDelegate : NSObjectProtocol
```

## Mentioned in

Supporting Drag and Drop in Collection Views

## Overview

Overview Implement this protocol in the object that you use to initiate drags from your collection view. The only required method of this protocol is the collectionView(_:itemsForBeginning:at:) method, but you can implement other methods as needed to customize the drag behavior of your collection view. Assign your custom delegate object to the dragDelegate property of your collection view.

## Topics

### Providing the items to drag

- [collectionView(_:itemsForBeginning:at:)](uikit/uicollectionviewdragdelegate/collectionview(_:itemsforbeginning:at:).md)
- [collectionView(_:itemsForAddingTo:at:point:)](uikit/uicollectionviewdragdelegate/collectionview(_:itemsforaddingto:at:point:).md)

### Tracking the drag session

- [collectionView(_:dragSessionWillBegin:)](uikit/uicollectionviewdragdelegate/collectionview(_:dragsessionwillbegin:).md)
- [collectionView(_:dragSessionDidEnd:)](uikit/uicollectionviewdragdelegate/collectionview(_:dragsessiondidend:).md)

### Providing a custom preview

- [collectionView(_:dragPreviewParametersForItemAt:)](uikit/uicollectionviewdragdelegate/collectionview(_:dragpreviewparametersforitemat:).md)

### Controlling the drag session

- [collectionView(_:dragSessionAllowsMoveOperation:)](uikit/uicollectionviewdragdelegate/collectionview(_:dragsessionallowsmoveoperation:).md)
- [collectionView(_:dragSessionIsRestrictedToDraggingApplication:)](uikit/uicollectionviewdragdelegate/collectionview(_:dragsessionisrestrictedtodraggingapplication:).md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Drag and drop

- [Supporting Drag and Drop in Collection Views](uikit/supporting-drag-and-drop-in-collection-views.md)
- [UICollectionViewDropDelegate](uikit/uicollectionviewdropdelegate.md)
- [UICollectionViewDropCoordinator](uikit/uicollectionviewdropcoordinator.md)
- [UICollectionViewDropPlaceholder](uikit/uicollectionviewdropplaceholder.md)
- [UICollectionViewDropProposal](uikit/uicollectionviewdropproposal.md)
- [UICollectionViewDropItem](uikit/uicollectionviewdropitem.md)
- [UICollectionViewDropPlaceholderContext](uikit/uicollectionviewdropplaceholdercontext.md)
- [UIDataSourceTranslating](uikit/uidatasourcetranslating.md)
- [UICollectionViewPlaceholder](uikit/uicollectionviewplaceholder.md)
