<!--
{
  "availability" : [
    "macOS: 10.7.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AppKit",
  "identifier" : "/documentation/AppKit/NSView/layoutSubtreeIfNeeded()",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "AppKit"
    ],
    "preciseIdentifier" : "c:objc(cs)NSView(im)layoutSubtreeIfNeeded"
  },
  "title" : "layoutSubtreeIfNeeded()"
}
-->

# layoutSubtreeIfNeeded()

Updates the layout of the receiving view and its subviews based on the current views and constraints.

```
func layoutSubtreeIfNeeded()
```

## Discussion

Before displaying a view that uses constraints-based layout the system invokes this method to ensure that the layout of the view and its subviews is up to date. This method updates the layout if needed, first invoking [`updateConstraintsForSubtreeIfNeeded()`](/documentation/AppKit/NSView/updateConstraintsForSubtreeIfNeeded()) to ensure that all constraints are up to date. This method is called automatically by the system, but may be invoked manually if you need to examine the most up to date layout.

Subclasses should not override this method.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)