Skip to content

SwiftUI: spacing

In the last SwiftUI tutorial I mentioned how views can be arranged using stacks:

VStack {
    Text("Hello World")
    Text("Hello again!")
}

Let’s talk about spacing.

See how there’s no space between the two Text views? That’s because it’s the default behavior of VStack.

VStack accepts a spacing parameter:

VStack(spacing: 100) {
    Text("Hello World")
    Text("Hello again!")
}

This puts a 100 points space between the views contained in the VStack.

You can also use a Spacer view:

VStack {
    Text("Hello World")
    Spacer()
    Text("Hello again!")
}

Spacer fills all the available space as it can:

You can limit it to a specific set of points using the frame() modifier:

VStack {
    Text("Hello World")
    Spacer()
      .frame(height: 20)
    Text("Hello again!")
}


→ Here's my latest YouTube video

→ Get my Swift Handbook

→ I wrote 17 books to help you become a better developer, download them all at $0 cost by joining my newsletter

JOIN MY CODING BOOTCAMP, an amazing cohort course that will be a huge step up in your coding career - covering React, Next.js - next edition February 2025

Bootcamp 2025

Join the waiting list