Updated for Xcode 14.2
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")
}
Download this as an Xcode project
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()
}
Download this as an Xcode project
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")
}
Download this as an Xcode project
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()
}
Download this as an Xcode project
SAVE 50% To celebrate WWDC23, all our books and bundles are half price, so you can take your Swift knowledge further without spending big! Get the Swift Power Pack to build your iOS career faster, get the Swift Platform Pack to builds apps for macOS, watchOS, and beyond, or get the Swift Plus Pack to learn advanced design patterns, testing skills, and more.
Link copied to your pasteboard.