<!--
{
  "availability" : [
    "iOS: 14.0.0 -",
    "iPadOS: 14.0.0 -",
    "macCatalyst: 14.0.0 -",
    "macOS: 11.0.0 -",
    "tvOS: 14.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 7.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "SwiftUI",
  "identifier" : "/documentation/SwiftUI/LazyHStack",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "SwiftUI"
    ],
    "preciseIdentifier" : "s:7SwiftUI10LazyHStackV"
  },
  "title" : "LazyHStack"
}
-->

# LazyHStack

A view that arranges its children in a line that grows horizontally,
creating items only as needed.

```
nonisolated struct LazyHStack<Content> where Content : View
```

## Overview

The stack is “lazy,” in that the stack view doesn’t create items until
it needs to render them onscreen.

In the following example, a [`ScrollView`](/documentation/SwiftUI/ScrollView) contains a `LazyHStack` that
consists of a horizontal row of text views. The stack aligns to the top
of the scroll view and uses 10-point spacing between each text view.

```
ScrollView(.horizontal) {
    LazyHStack(alignment: .top, spacing: 10) {
        ForEach(1...100, id: \.self) {
            Text("Column \($0)")
        }
    }
}
```

## Topics

### Creating a lazy-loading horizontal stack

[`init(alignment:spacing:pinnedViews:content:)`](/documentation/SwiftUI/LazyHStack/init(alignment:spacing:pinnedViews:content:))

Creates a lazy horizontal stack view with the given spacing,
vertical alignment, pinning behavior, and content.



---

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)