<!--
{
  "availability" : [
    "iOS: 6.0.0 -",
    "iPadOS: 6.0.0 -",
    "macCatalyst: 13.1.0 -",
    "tvOS: -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "UIKit",
  "identifier" : "/documentation/UIKit/UICollectionView/dequeueReusableCell(withReuseIdentifier:for:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "UIKit"
    ],
    "preciseIdentifier" : "c:objc(cs)UICollectionView(im)dequeueReusableCellWithReuseIdentifier:forIndexPath:"
  },
  "title" : "dequeueReusableCell(withReuseIdentifier:for:)"
}
-->

# dequeueReusableCell(withReuseIdentifier:for:)

Dequeues a reusable cell object located by its identifier.

```
func dequeueReusableCell(withReuseIdentifier identifier: String, for indexPath: IndexPath) -> UICollectionViewCell
```

## Parameters

`identifier`

The reuse identifier for the specified cell. This parameter must not be `nil`.

`indexPath`

The index path specifying the location of the cell. The data source receives this information when it is asked for the cell and should just pass it along. This method uses the index path to perform additional configuration based on the cell’s position in the collection view.

## Return Value

A valid [`UICollectionReusableView`](/documentation/UIKit/UICollectionReusableView) object.

## Discussion

Call this method from your data source object when asked to provide a new cell for the collection view. This method dequeues an existing cell if one is available or creates a new one based on the class or nib file you previously registered.

> Important:
> You must register a class or nib file using the ``doc://com.apple.uikit/documentation/UIKit/UICollectionView/register(_:forCellWithReuseIdentifier:)-3vaho`` or ``doc://com.apple.uikit/documentation/UIKit/UICollectionView/register(_:forCellWithReuseIdentifier:)-6z6t4`` method before calling this method.

If you registered a class for the specified `identifier` and a new cell must be created, this method initializes the cell by calling its [`init(frame:)`](/documentation/UIKit/UIView/init(frame:)) method. For nib-based cells, this method loads the cell object from the provided nib file. If an existing cell was available for reuse, this method calls the cell’s [`prepareForReuse()`](/documentation/UIKit/UICollectionReusableView/prepareForReuse()) method instead.

---

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)