<!--
{
  "availability" : [
    "iOS: 15.0.0 -",
    "iPadOS: 15.0.0 -",
    "macCatalyst: 15.0.0 -",
    "tvOS: 15.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "UIKit",
  "identifier" : "/documentation/UIKit/NSDiffableDataSourceSnapshotReference/reconfigureItems(withIdentifiers:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "UIKit"
    ],
    "preciseIdentifier" : "c:objc(cs)NSDiffableDataSourceSnapshot(im)reconfigureItemsWithIdentifiers:"
  },
  "title" : "reconfigureItems(withIdentifiers:)"
}
-->

# reconfigureItems(withIdentifiers:)

Updates the data for the items you specify in the snapshot, preserving the existing cells for the items.

```
func reconfigureItems(withIdentifiers identifiers: [Any])
```

## Parameters

`identifiers`

An array of identifiers corresponding to the items to update data for in the snapshot.

## Discussion

To update the contents of existing (including prefetched) cells without replacing them with new cells, use this method instead of [`reloadItems(withIdentifiers:)`](/documentation/UIKit/NSDiffableDataSourceSnapshotReference/reloadItems(withIdentifiers:)). For optimal performance, choose to reconfigure items instead of reloading items unless you have an explicit need to replace the existing cell with a new cell.

Your cell provider must dequeue the same type of cell for the provided index path, and must return the same existing cell for a given index path. Because this method reconfigures existing cells, the collection view or table view doesn’t call `prepareForReuse` for each cell dequeued. If you need to return a different type of cell for an index path, use [`reloadItems(withIdentifiers:)`](/documentation/UIKit/NSDiffableDataSourceSnapshotReference/reloadItems(withIdentifiers:)) instead.

If your cells are self-sizing, the collection view or table view resizes your cells after reconfiguring them.

Set the `animatingDifferences` parameter to tell the collection view or table view whether to animate any size or layout changes that are a result of reconfiguration when you apply the snapshot to your data source. To avoid animations when setting specific properties, use [`performWithoutAnimation(_:)`](/documentation/UIKit/UIView/performWithoutAnimation(_:)) in your cell configuration logic.

If your collection view or table view uses a diffable data source, use this method. If your collection view uses a custom implementation of `UICollectionViewDataSource`, use [`reconfigureItems(at:)`](/documentation/UIKit/UICollectionView/reconfigureItems(at:)) instead. If your table view uses a custom implementation of `UITableViewDataSource`, use [`reconfigureRows(at:)`](/documentation/UIKit/UITableView/reconfigureRows(at:)) 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)