I've been building an application in SwiftUI recently and today I'm noticing that the VStack Alignment is having some strange behavior. No matter the alignment I use, the view isn't aligning outside of the center. See below:
VStack(alignment: .trailing, spacing: 0) {
Text("Hello, World!")
}
VStack(alignment: .center, spacing: 0) {
Text("Hello, World!")
}
It's doing this in both the preview and the simulator, I'm trying to align my text to the right edge of the screen.
Full Code:
import SwiftUI
struct DemoView: View {
var body: some View {
VStack(alignment: .center, spacing: 0) {
Text("Hello, World!")
}
}
}
struct DemoView_Previews: PreviewProvider {
static var previews: some View {
DemoView()
}
}
The VStack(alignment:...)
is for aligning subviews, but you have only one subview, so nothing to align
By default all stacks are tight to content (just add .border to your test VStack/s and you see the result, so there is no area to move content.
What you expected is solved by giving frame alignment in stack providing screen-wide area:
VStack {
Text("Hello, World!")
}.frame(maxWidth: .infinity, alignment: .trailing)
P.S. SwiftUI still has many bugs, but not here :)