<!--
{
  "availability" : [
    "iOS: 11.0.0 -",
    "iPadOS: 11.0.0 -",
    "macCatalyst: 13.1.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "UIKit",
  "identifier" : "/documentation/UIKit/UITableViewDropDelegate",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "UIKit"
    ],
    "preciseIdentifier" : "c:objc(pl)UITableViewDropDelegate"
  },
  "title" : "UITableViewDropDelegate"
}
-->

# UITableViewDropDelegate

The interface for handling drops in a table view.

```
@MainActor protocol UITableViewDropDelegate : NSObjectProtocol
```

## Overview

Implement this protocol in the object that you use to incorporate dropped data into your table view. The only required method of this protocol is the [`tableView(_:performDropWith:)`](/documentation/UIKit/UITableViewDropDelegate/tableView(_:performDropWith:)) method, but you can implement other methods as needed to customize the drop behavior of your table view.

Assign your custom delegate object to the [`dropDelegate`](/documentation/UIKit/UITableView/dropDelegate) property of your table view.

## Topics

### Declaring support for handling drops

[`tableView(_:canHandle:)`](/documentation/UIKit/UITableViewDropDelegate/tableView(_:canHandle:))

Asks your delegate whether it can accept the specified type of data.

### Providing a custom drop preview

[`tableView(_:dropPreviewParametersForRowAt:)`](/documentation/UIKit/UITableViewDropDelegate/tableView(_:dropPreviewParametersForRowAt:))

Returns custom information about how to display the row at the specified location during the drop.

### Incorporating the dropped data

[`tableView(_:performDropWith:)`](/documentation/UIKit/UITableViewDropDelegate/tableView(_:performDropWith:))

Incorporates the dropped data into your data structures and updates the table.

### Tracking the drag movements

[`tableView(_:dropSessionDidUpdate:withDestinationIndexPath:)`](/documentation/UIKit/UITableViewDropDelegate/tableView(_:dropSessionDidUpdate:withDestinationIndexPath:))

Proposes how to handle a drop at the specified location in the table view.

[`tableView(_:dropSessionDidEnter:)`](/documentation/UIKit/UITableViewDropDelegate/tableView(_:dropSessionDidEnter:))

Notifies the delegate when dragged content enters the table view’s bounds rectangle.

[`tableView(_:dropSessionDidExit:)`](/documentation/UIKit/UITableViewDropDelegate/tableView(_:dropSessionDidExit:))

Notifies the delegate when dragged content exits the table view’s bounds rectangle.

[`tableView(_:dropSessionDidEnd:)`](/documentation/UIKit/UITableViewDropDelegate/tableView(_:dropSessionDidEnd:))

Notifies the delegate when the drag operation ends.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)