---
title: Layout
framework: appkit
role: collectionGroup
role_heading: API Collection
path: appkit/layout
---

# Layout

Specify the size and position your view relative to other nearby views using rules that update your view hierarchy automatically.

## Topics

### Respecting the View’s Safe Area

- [safeAreaRect](appkit/nsview/safearearect.md)
- [safeAreaInsets](appkit/nsview/safeareainsets.md)
- [additionalSafeAreaInsets](appkit/nsview/additionalsafeareainsets.md)
- [safeAreaLayoutGuide](appkit/nsview/safearealayoutguide.md)

### Managing the Content Layout Direction

- [userInterfaceLayoutDirection](appkit/nsview/userinterfacelayoutdirection.md)

### Opting In to Auto Layout

- [requiresConstraintBasedLayout](appkit/nsview/requiresconstraintbasedlayout.md)
- [translatesAutoresizingMaskIntoConstraints](appkit/nsview/translatesautoresizingmaskintoconstraints.md)

### Creating Constraints Using Layout Anchors

- [bottomAnchor](appkit/nsview/bottomanchor.md)
- [centerXAnchor](appkit/nsview/centerxanchor.md)
- [centerYAnchor](appkit/nsview/centeryanchor.md)
- [firstBaselineAnchor](appkit/nsview/firstbaselineanchor.md)
- [heightAnchor](appkit/nsview/heightanchor.md)
- [lastBaselineAnchor](appkit/nsview/lastbaselineanchor.md)
- [leadingAnchor](appkit/nsview/leadinganchor.md)
- [leftAnchor](appkit/nsview/leftanchor.md)
- [rightAnchor](appkit/nsview/rightanchor.md)
- [topAnchor](appkit/nsview/topanchor.md)
- [trailingAnchor](appkit/nsview/trailinganchor.md)
- [widthAnchor](appkit/nsview/widthanchor.md)

### Managing the View’s Constraints

- [constraints](appkit/nsview/constraints.md)
- [addConstraint(_:)](appkit/nsview/addconstraint(_:).md)
- [addConstraints(_:)](appkit/nsview/addconstraints(_:).md)
- [removeConstraint(_:)](appkit/nsview/removeconstraint(_:).md)
- [removeConstraints(_:)](appkit/nsview/removeconstraints(_:).md)

### Measuring in Auto Layout

- [fittingSize](appkit/nsview/fittingsize.md)
- [intrinsicContentSize](appkit/nsview/intrinsiccontentsize.md)
- [invalidateIntrinsicContentSize()](appkit/nsview/invalidateintrinsiccontentsize().md)
- [contentCompressionResistancePriority(for:)](appkit/nsview/contentcompressionresistancepriority(for:).md)
- [setContentCompressionResistancePriority(_:for:)](appkit/nsview/setcontentcompressionresistancepriority(_:for:).md)
- [contentHuggingPriority(for:)](appkit/nsview/contenthuggingpriority(for:).md)
- [setContentHuggingPriority(_:for:)](appkit/nsview/setcontenthuggingpriority(_:for:).md)
- [noIntrinsicMetric](appkit/nsview/nointrinsicmetric.md)

### Managing Layout Guides

- [addLayoutGuide(_:)](appkit/nsview/addlayoutguide(_:).md)
- [removeLayoutGuide(_:)](appkit/nsview/removelayoutguide(_:).md)
- [layoutGuides](appkit/nsview/layoutguides.md)
- [layoutMarginsGuide](appkit/nsview/layoutmarginsguide.md)

### Aligning Views with Auto Layout

- [alignmentRect(forFrame:)](appkit/nsview/alignmentrect(forframe:).md)
- [frame(forAlignmentRect:)](appkit/nsview/frame(foralignmentrect:).md)
- [alignmentRectInsets](appkit/nsview/alignmentrectinsets.md)
- [baselineOffsetFromBottom](appkit/nsview/baselineoffsetfrombottom.md)
- [firstBaselineOffsetFromTop](appkit/nsview/firstbaselineoffsetfromtop.md)
- [lastBaselineOffsetFromBottom](appkit/nsview/lastbaselineoffsetfrombottom.md)

### Triggering Auto Layout

- [needsLayout](appkit/nsview/needslayout.md)
- [layout()](appkit/nsview/layout().md)
- [layoutSubtreeIfNeeded()](appkit/nsview/layoutsubtreeifneeded().md)
- [needsUpdateConstraints](appkit/nsview/needsupdateconstraints.md)
- [updateConstraints()](appkit/nsview/updateconstraints().md)
- [updateConstraintsForSubtreeIfNeeded()](appkit/nsview/updateconstraintsforsubtreeifneeded().md)

### Enabling and Disabling Constraints

- [isHorizontalContentSizeConstraintActive](appkit/nsview/ishorizontalcontentsizeconstraintactive.md)
- [isVerticalContentSizeConstraintActive](appkit/nsview/isverticalcontentsizeconstraintactive.md)

### Debugging Auto Layout

- [constraintsAffectingLayout(for:)](appkit/nsview/constraintsaffectinglayout(for:).md)
- [hasAmbiguousLayout](appkit/nsview/hasambiguouslayout.md)
- [exerciseAmbiguityInLayout()](appkit/nsview/exerciseambiguityinlayout().md)

### Resizing Subviews

- [autoresizesSubviews](appkit/nsview/autoresizessubviews.md)
- [autoresizingMask](appkit/nsview/autoresizingmask-swift.property.md)
- [NSView.AutoresizingMask](appkit/nsview/autoresizingmask-swift.struct.md)
- [resizeSubviews(withOldSize:)](appkit/nsview/resizesubviews(witholdsize:).md)
- [resize(withOldSuperviewSize:)](appkit/nsview/resize(witholdsuperviewsize:).md)

## See Also

### Managing the view’s content

- [Drawing](appkit/nsview-drawing.md)
- [Printing](appkit/nsview-printing.md)
- [NSViewContentSelectionInfo](appkit/nsviewcontentselectioninfo.md)
