返回

在 SwiftUI 中实现视图居中的若干种方法

IOS

前言

在 SwiftUI 中,视图居中是一个常见的需求。它可以用于在屏幕上创建对齐的布局、将视图放置在另一个视图的中心,或者将视图放置在安全区域内。

方法一:使用 VStack 和 HStack

VStack 和 HStack 是 SwiftUI 中的两个布局视图,它们可以用于在垂直或水平方向上排列视图。为了将视图居中,我们可以将它放在一个 VStack 或 HStack 中,然后将 VStack 或 HStack 的 alignment 参数设置为 .center。

struct ContentView: View {
    var body: some View {
        VStack {
            Text("Hello World!")
                .alignmentGuide(.center) { _ in 0 }
        }
        .frame(width: 200, height: 200)
    }
}

方法二:使用 AlignmentGuide

AlignmentGuide 是一种可以在 SwiftUI 中用于将视图与特定位置对齐的工具。我们可以使用 AlignmentGuide 将视图与另一个视图的中心对齐,或者将视图与安全区域的中心对齐。

struct ContentView: View {
    var body: some View {
        Text("Hello World!")
            .alignmentGuide(.center) { _ in 0 }
    }
}

方法三:使用 Anchor

Anchor 是 SwiftUI 中的一种可以在视图之间创建约束的工具。我们可以使用 Anchor 将视图与另一个视图的中心对齐,或者将视图与安全区域的中心对齐。

struct ContentView: View {
    var body: some View {
        Text("Hello World!")
            .anchor(alignment: .center) { anchor in
                anchor.x == $centerX
                anchor.y == $centerY
            }
    }
}

方法四:使用 Safe Area

Safe Area 是 SwiftUI 中的一个视图,它表示屏幕上安全显示内容的区域。我们可以将视图放在 Safe Area 中,然后将 Safe Area 的 alignment 参数设置为 .center。

struct ContentView: View {
    var body: some View {
        SafeA