---
title: UICollectionViewLayoutInvalidationContext
framework: uikit
role: symbol
role_heading: Class
path: uikit/uicollectionviewlayoutinvalidationcontext
---

# UICollectionViewLayoutInvalidationContext

A context object that declares which parts of your layout need to be updated when the layout is invalidated.

## Declaration

```swift
@MainActor class UICollectionViewLayoutInvalidationContext
```

## Overview

Overview Layout objects that are designed to support invalidation contexts can use the information in a UICollectionViewLayoutInvalidationContext object to optimize their behavior during the invalidation cycle. You can create an invalidation context object as a precursor to invalidating a layout object. After configuring the invalidation context object, pass it to the layout object’s invalidateLayout(with:) method, which is responsible for using the context object to update the layout efficiently. The collection view also creates invalidation contexts in response to specific changes. For example, it creates an invalidation context when you change the layout or data source object, when you insert or delete items, and when you call the reloadData() method. Subclassing Notes If you create your own custom layout objects, you can subclass UICollectionViewLayoutInvalidationContext and add properties to specify which aspects of your layout data can be invalidated separately. You must then design your layout object to check for these properties and update the layout appropriately. For more information about how to support custom invalidation contexts in your layout objects, see UICollectionViewLayout.

## Topics

### Invalidating the Collection View Data

- [invalidateEverything](uikit/uicollectionviewlayoutinvalidationcontext/invalidateeverything.md)
- [invalidateDataSourceCounts](uikit/uicollectionviewlayoutinvalidationcontext/invalidatedatasourcecounts.md)

### Invalidating the Content Area

- [contentOffsetAdjustment](uikit/uicollectionviewlayoutinvalidationcontext/contentoffsetadjustment.md)
- [contentSizeAdjustment](uikit/uicollectionviewlayoutinvalidationcontext/contentsizeadjustment.md)

### Invalidating Specific Items

- [invalidateItems(at:)](uikit/uicollectionviewlayoutinvalidationcontext/invalidateitems(at:).md)
- [invalidateSupplementaryElements(ofKind:at:)](uikit/uicollectionviewlayoutinvalidationcontext/invalidatesupplementaryelements(ofkind:at:).md)
- [invalidateDecorationElements(ofKind:at:)](uikit/uicollectionviewlayoutinvalidationcontext/invalidatedecorationelements(ofkind:at:).md)
- [invalidatedItemIndexPaths](uikit/uicollectionviewlayoutinvalidationcontext/invalidateditemindexpaths.md)
- [invalidatedSupplementaryIndexPaths](uikit/uicollectionviewlayoutinvalidationcontext/invalidatedsupplementaryindexpaths.md)
- [invalidatedDecorationIndexPaths](uikit/uicollectionviewlayoutinvalidationcontext/invalidateddecorationindexpaths.md)

### Invalidating the Order of Items

- [previousIndexPathsForInteractivelyMovingItems](uikit/uicollectionviewlayoutinvalidationcontext/previousindexpathsforinteractivelymovingitems.md)
- [targetIndexPathsForInteractivelyMovingItems](uikit/uicollectionviewlayoutinvalidationcontext/targetindexpathsforinteractivelymovingitems.md)
- [interactiveMovementTarget](uikit/uicollectionviewlayoutinvalidationcontext/interactivemovementtarget.md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Inherited By

- [UICollectionViewFlowLayoutInvalidationContext](uikit/uicollectionviewflowlayoutinvalidationcontext.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [Sendable](swift/sendable.md)

## See Also

### Layout updates

- [NSCollectionLayoutVisibleItem](uikit/nscollectionlayoutvisibleitem.md)
- [NSCollectionLayoutSectionVisibleItemsInvalidationHandler](uikit/nscollectionlayoutsectionvisibleitemsinvalidationhandler.md)
- [UICollectionViewUpdateItem](uikit/uicollectionviewupdateitem.md)
- [UICollectionViewFocusUpdateContext](uikit/uicollectionviewfocusupdatecontext.md)
