<!--
{
  "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/dequeueReusableSupplementaryView(ofKind:withReuseIdentifier:for:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "UIKit"
    ],
    "preciseIdentifier" : "c:objc(cs)UICollectionView(im)dequeueReusableSupplementaryViewOfKind:withReuseIdentifier:forIndexPath:"
  },
  "title" : "dequeueReusableSupplementaryView(ofKind:withReuseIdentifier:for:)"
}
-->

# dequeueReusableSupplementaryView(ofKind:withReuseIdentifier:for:)

Dequeues a reusable supplementary view located by its identifier and kind.

```
func dequeueReusableSupplementaryView(ofKind elementKind: String, withReuseIdentifier identifier: String, for indexPath: IndexPath) -> UICollectionReusableView
```

## Parameters

`elementKind`

The kind of supplementary view to retrieve. This value is defined by the layout object. This parameter must not be `nil`.

`identifier`

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

`indexPath`

The index path specifying the location of the supplementary view in the collection view. The data source receives this information when it’s asked for the view and should just pass it along. This method uses the information to perform additional configuration based on the view’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 supplementary view for the collection view. This method dequeues an existing view 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(_:forSupplementaryViewOfKind:withReuseIdentifier:)-661io`` or ``doc://com.apple.uikit/documentation/UIKit/UICollectionView/register(_:forSupplementaryViewOfKind:withReuseIdentifier:)-9hn73`` method before calling this method. You can also register a set of default supplementary views with the layout object using the ``doc://com.apple.uikit/documentation/UIKit/UICollectionViewLayout/register(_:forDecorationViewOfKind:)-361k6`` or ``doc://com.apple.uikit/documentation/UIKit/UICollectionViewLayout/register(_:forDecorationViewOfKind:)-35jf9`` 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)