Updated for Xcode 12.0
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:
struct ContentView: View {
var body: some View {
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()
}
SPONSORED Would you describe yourself as knowledgeable, but struggling when you have to come up with your own code? Fernando Olivares has a new book containing iOS rules you can immediately apply to your coding habits to see dramatic improvements, while also teaching applied programming fundamentals seen in refactored code from published apps.
Sponsor Hacking with Swift and reach the world's largest Swift community!
Link copied to your pasteboard.