import SwiftUI /** A view that centers the content vertically using a `VStack` */ struct VerticalCenter : View where Content : View { let alignment: HorizontalAlignment let spacing: CGFloat? let content: Content public init(alignment: HorizontalAlignment = .center, spacing: CGFloat? = nil, @ViewBuilder content: () -> Content) { self.alignment = alignment self.spacing = spacing self.content = content() } var body: some View { VStack(alignment: alignment, spacing: spacing) { Spacer() content Spacer() } } } #Preview { VerticalCenter { Text("Test") } }