How to force views to one side inside a stack using Spacer
How to force views to one side inside a stack using Spacer êŽë š
Updated for Xcode 15
SwiftUI centers its views by default, which means if you place three text views inside a VStack
all three will sit centered vertically in the screen. If you want to change this â if you want to force views towards the top, bottom, left, or right of the screen â then you should use a Spacer
view.
For example, this places one text view inside a VStack
, which means it will be centered vertically:
VStack {
Text("Hello World")
}
To push that text view to the top of the parent, we'd place a spacer below it, like this:
VStack {
Text("Hello World")
Spacer()
}
If you wanted two pieces of text on the leading and trailing edges of a HStack
, you would use a spacer like this:
HStack {
Text("Hello")
Spacer()
Text("World")
}
Spacers automatically divide up all remaining space, which means if you use if you use several spacers you can divide up the space in varying amounts.
For example, this will place a text view one third of the way down its parent view by putting one spacer before it and two after:
VStack {
Spacer()
Text("Hello World")
Spacer()
Spacer()
}