---
title: "invalidationContext(forPreferredLayoutAttributes:withOriginalAttributes:)"
framework: appkit
role: symbol
role_heading: Instance Method
path: "appkit/nscollectionviewlayout/invalidationcontext(forpreferredlayoutattributes:withoriginalattributes:)"
---

# invalidationContext(forPreferredLayoutAttributes:withOriginalAttributes:)

Returns an invalidation context object that defines the portions of the layout that need to be updated.

## Declaration

```swift
func invalidationContext(forPreferredLayoutAttributes preferredAttributes: NSCollectionViewLayoutAttributes, withOriginalAttributes originalAttributes: NSCollectionViewLayoutAttributes) -> NSCollectionViewLayoutInvalidationContext
```

## Parameters

- `preferredAttributes`: The preferred layout attributes of an element.
- `originalAttributes`: The attributes that the layout object originally suggested for the item.

## Return Value

Return Value An invalidation context that describes the changes to be made. This value is never nil.

## Discussion

Discussion The default implementation of this method creates an instance of the class returned by the invalidationContextClass method and initializes it using its init() method. Subclasses can override this method and configure additional properties of the invalidation context. In your implementation, you must call super first to get the context object; you can then configure that object and return it.

## See Also

### Invalidating the Layout

- [invalidateLayout()](appkit/nscollectionviewlayout/invalidatelayout().md)
- [invalidateLayout(with:)](appkit/nscollectionviewlayout/invalidatelayout(with:).md)
- [invalidationContextClass](appkit/nscollectionviewlayout/invalidationcontextclass.md)
- [shouldInvalidateLayout(forBoundsChange:)](appkit/nscollectionviewlayout/shouldinvalidatelayout(forboundschange:).md)
- [shouldInvalidateLayout(forPreferredLayoutAttributes:withOriginalAttributes:)](appkit/nscollectionviewlayout/shouldinvalidatelayout(forpreferredlayoutattributes:withoriginalattributes:).md)
- [invalidationContext(forBoundsChange:)](appkit/nscollectionviewlayout/invalidationcontext(forboundschange:).md)
