---
title: prepare()
framework: appkit
role: symbol
role_heading: Instance Method
path: appkit/nscollectionviewlayout/prepare()
---

# prepare()

Prepares the layout object to begin laying out content.

## Declaration

```swift
func prepare()
```

## Discussion

Discussion The default implementation of this method does nothing. During the layout cycle, the collection view calls this method first to give you a chance to prepare any data needed during the layout operation. When defining a custom layout, you can override this method and use it to set up data structures or perform any initial computations needed to perform the layout later.

## See Also

### Providing Layout Information

- [layoutAttributesClass](appkit/nscollectionviewlayout/layoutattributesclass.md)
- [collectionViewContentSize](appkit/nscollectionviewlayout/collectionviewcontentsize.md)
- [layoutAttributesForElements(in:)](appkit/nscollectionviewlayout/layoutattributesforelements(in:).md)
- [layoutAttributesForItem(at:)](appkit/nscollectionviewlayout/layoutattributesforitem(at:).md)
- [layoutAttributesForSupplementaryView(ofKind:at:)](appkit/nscollectionviewlayout/layoutattributesforsupplementaryview(ofkind:at:).md)
- [layoutAttributesForDecorationView(ofKind:at:)](appkit/nscollectionviewlayout/layoutattributesfordecorationview(ofkind:at:).md)
- [layoutAttributesForDropTarget(at:)](appkit/nscollectionviewlayout/layoutattributesfordroptarget(at:).md)
- [layoutAttributesForInterItemGap(before:)](appkit/nscollectionviewlayout/layoutattributesforinteritemgap(before:).md)
- [targetContentOffset(forProposedContentOffset:)](appkit/nscollectionviewlayout/targetcontentoffset(forproposedcontentoffset:).md)
- [targetContentOffset(forProposedContentOffset:withScrollingVelocity:)](appkit/nscollectionviewlayout/targetcontentoffset(forproposedcontentoffset:withscrollingvelocity:).md)
