---
title: UIDragInteractionDelegate
framework: uikit
role: symbol
role_heading: Protocol
path: uikit/uidraginteractiondelegate
---

# UIDragInteractionDelegate

The interface for configuring and controlling a drag interaction.

## Declaration

```swift
@MainActor protocol UIDragInteractionDelegate : NSObjectProtocol
```

## Mentioned in

Making a view into a drag source Understanding a drag item as a promise

## Topics

### Performing the drag

- [dragInteraction(_:itemsForBeginning:)](uikit/uidraginteractiondelegate/draginteraction(_:itemsforbeginning:).md)
- [dragInteraction(_:itemsForAddingTo:withTouchAt:)](uikit/uidraginteractiondelegate/draginteraction(_:itemsforaddingto:withtouchat:).md)
- [dragInteraction(_:sessionForAddingItems:withTouchAt:)](uikit/uidraginteractiondelegate/draginteraction(_:sessionforaddingitems:withtouchat:).md)

### Animating the drag behaviors

- [dragInteraction(_:willAnimateLiftWith:session:)](uikit/uidraginteractiondelegate/draginteraction(_:willanimateliftwith:session:).md)
- [dragInteraction(_:item:willAnimateCancelWith:)](uikit/uidraginteractiondelegate/draginteraction(_:item:willanimatecancelwith:).md)

### Monitoring drag progress

- [dragInteraction(_:sessionWillBegin:)](uikit/uidraginteractiondelegate/draginteraction(_:sessionwillbegin:).md)
- [dragInteraction(_:session:willAdd:for:)](uikit/uidraginteractiondelegate/draginteraction(_:session:willadd:for:).md)
- [dragInteraction(_:sessionDidMove:)](uikit/uidraginteractiondelegate/draginteraction(_:sessiondidmove:).md)
- [dragInteraction(_:session:willEndWith:)](uikit/uidraginteractiondelegate/draginteraction(_:session:willendwith:).md)
- [dragInteraction(_:session:didEndWith:)](uikit/uidraginteractiondelegate/draginteraction(_:session:didendwith:).md)
- [dragInteraction(_:sessionDidTransferItems:)](uikit/uidraginteractiondelegate/draginteraction(_:sessiondidtransferitems:).md)

### Providing drag previews

- [dragInteraction(_:previewForLifting:session:)](uikit/uidraginteractiondelegate/draginteraction(_:previewforlifting:session:).md)
- [dragInteraction(_:previewForCancelling:withDefault:)](uikit/uidraginteractiondelegate/draginteraction(_:previewforcancelling:withdefault:).md)
- [dragInteraction(_:prefersFullSizePreviewsFor:)](uikit/uidraginteractiondelegate/draginteraction(_:prefersfullsizepreviewsfor:).md)

### Restricting the drag behavior

- [dragInteraction(_:sessionIsRestrictedToDraggingApplication:)](uikit/uidraginteractiondelegate/draginteraction(_:sessionisrestrictedtodraggingapplication:).md)
- [dragInteraction(_:sessionAllowsMoveOperation:)](uikit/uidraginteractiondelegate/draginteraction(_:sessionallowsmoveoperation:).md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Drag and drop interactions

- [UIDropInteractionDelegate](uikit/uidropinteractiondelegate.md)
- [UIDragInteraction](uikit/uidraginteraction.md)
- [UIDropInteraction](uikit/uidropinteraction.md)
