Another approach is to use alignment for the ZStack instead of spacer.
You will ensure that the elements will be aligned/overlayed starting from the top in this example.
ZStack(alignment: .top) {
Text("Hello, World!")
VStack {
Image(...)
}
}