---
title: layoutManager
framework: quartzcore
role: symbol
role_heading: Instance Property
path: quartzcore/calayer/layoutmanager
---

# layoutManager

The object responsible for laying out the layer’s sublayers.

## Declaration

```swift
var layoutManager: (any CALayoutManager)? { get set }
```

## Discussion

Discussion The object you assign to this property must nominally implement the CALayoutManager Informal Protocol informal protocol. If the layer’s delegate does not handle layout updates, the object assigned to this property is given a chance to update the layout of the layer’s sublayers. In macOS, assign an instance of the CAConstraintLayoutManager class to this property if your layer uses layer-based constraints to handle layout changes. The default value of this property is nil.

## See Also

### Managing layer resizing and layout

- [setNeedsLayout()](quartzcore/calayer/setneedslayout().md)
- [layoutSublayers()](quartzcore/calayer/layoutsublayers().md)
- [layoutIfNeeded()](quartzcore/calayer/layoutifneeded().md)
- [needsLayout()](quartzcore/calayer/needslayout().md)
- [autoresizingMask](quartzcore/calayer/autoresizingmask.md)
- [resize(withOldSuperlayerSize:)](quartzcore/calayer/resize(witholdsuperlayersize:).md)
- [resizeSublayers(withOldSize:)](quartzcore/calayer/resizesublayers(witholdsize:).md)
- [preferredFrameSize()](quartzcore/calayer/preferredframesize().md)
