Change spacing between VStack elements in SwiftUI

In this tutorial, I will show you how to change or customize the spacing between VStack elements in SwiftUI.

In one of my previous tutorials, I discussed Custom space between Hstack elements in SwiftUI.

We can do this using the following ways: (You can choose what suits you best)

  • Using spacing: inside VStack()
  • With the help of Spacer().frame
  • Using .padding(.bottom, value)
  • Create our own Struct for Custom Spacer.

I will show each of those with example one by one.

 

I am taking an example by creating two Text() items in a VStack and then I will show you how easily we can change the space between those items.

import SwiftUI

struct ContentView: View {
    var body: some View {
        VStack{
            Text("I love CodeSpeedy")
            Text("I also like SwiftSpeedy")
        }
    }
}

Output:

VStack items in SwiftUI

Change space between VStack elements by using spacing: value

We can simply use this:

VStack(spacing: spacing_value)

Check it:

import SwiftUI

struct ContentView: View {
    var body: some View {
        VStack(spacing: 40){
            Text("I love CodeSpeedy")
            Text("I also like SwiftSpeedy")
        }
    }
}

 

Change spacing between VStack items in SwiftUI

Change spacing between VStack elements individually

Now if you want to change the spacing between specific two Vstack elements or items you can do this:

Spacer().frame(height: value)

Take a look at my code:

import SwiftUI

struct ContentView: View {
    var body: some View {
        VStack(){
            Text("I love CodeSpeedy")
            Spacer().frame(height: 20)
            Text("I also like SwiftSpeedy")
            Text("How's UISpeedy?")
        }
    }
}

Output:

Change space between two VStack elements in SwiftUI

Change space using .padding(.bottom, value)

We can also do the same by using .padding(.bottom, value)

import SwiftUI

struct ContentView: View {
    var body: some View {
        VStack(){
            Text("I love CodeSpeedy")
                .padding(.bottom, 20)
            Text("I also like SwiftSpeedy")
            Text("How's UISpeedy?")
        }
    }
}

Output:

SwiftUI Vstack space change

Our own Custom Spacer to add space between VStack elements

Just add this custom struct:

struct CustomSpacer: View {
    var height: CGFloat

    var body: some View {
        Spacer()
            .frame(height: height)
    }
}

The full code example:

import SwiftUI

struct ContentView: View {
    var body: some View {
        VStack(){
            Text("I love CodeSpeedy")
            CustomSpacer(height: 20)
            Text("I also like SwiftSpeedy")
            Text("How's UISpeedy?")
        }
    }
}
struct CustomSpacer: View {
    var height: CGFloat

    var body: some View {
        Spacer()
            .frame(height: height)
    }
}

This will show the same output as the previous one.

Leave a Reply

Your email address will not be published. Required fields are marked *