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

# UITableViewDropPlaceholder

A placeholder cell that supports customizing the drop preview parameters.

```
@MainActor class UITableViewDropPlaceholder
```

## Overview

When you want to insert a placeholder cell into your table, create a [`UITableViewDropPlaceholder`](/documentation/UIKit/UITableViewDropPlaceholder) object and pass it to the [`drop(_:to:)`](/documentation/UIKit/UITableViewDropCoordinator/drop(_:to:)-3znax) method of your [`UITableViewDropCoordinator`](/documentation/UIKit/UITableViewDropCoordinator). You use a placeholder cell to display a temporary interface while you load the cell’s contents asynchronously. For example, your placeholder cell might display a progress indicator or a message that the cell content isn’t yet available. The placeholder object contains the reuse identifier of the temporary cell you want to display in your table. It can also include a custom preview to use during the drop.

You must register the cells you use with your placeholders in advance. In your storyboard file, add a table view cell object to your table, configure its appearance, set its class to [`UITableViewCell`](/documentation/UIKit/UITableViewCell) (or an appropriate subclass), and assign a reuse identifier to it. When you create your [`UITableViewDropPlaceholder`](/documentation/UIKit/UITableViewDropPlaceholder) object, pass the cell’s reuse identifier to [`init(insertionIndexPath:reuseIdentifier:rowHeight:)`](/documentation/UIKit/UITableViewPlaceholder/init(insertionIndexPath:reuseIdentifier:rowHeight:)). The table view uses the information in your placeholder object to insert the cell into the table.

Set the [`cellUpdateHandler`](/documentation/UIKit/UITableViewPlaceholder/cellUpdateHandler) to a block of code that configures the cell as a placeholder for the incoming data.

For more information, see [Supporting drag and drop in table views](/documentation/UIKit/supporting-drag-and-drop-in-table-views).

> Important:
> Placeholder cells are meant to be a temporary part of your table view. Always replace them with actual cells as soon as possible, or cancel the drop to remove them from the table. Use the methods of a ``doc://com.apple.uikit/documentation/UIKit/UITableViewDropPlaceholderContext`` object to remove placeholders from your table.

## Topics

### Providing preview parameters

[`previewParametersProvider`](/documentation/UIKit/UITableViewDropPlaceholder/previewParametersProvider)

The handler block that provides the preview parameters for the specified cell.

## Relationships

### Conforms To

[`Equatable`](/documentation/Swift/Equatable)

[`Hashable`](/documentation/Swift/Hashable)

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`CVarArg`](/documentation/Swift/CVarArg)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

### Inherits From

[`UITableViewPlaceholder`](/documentation/UIKit/UITableViewPlaceholder)

---

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)