如何在 SwiftUI 中使用隐式堆栈?

5 min read

SwiftUI 中的隐式堆栈是通过容器视图(如VStack、HStack和ZStack)自动实现的。您可以在视图中嵌套这些容器视图,以使用隐式堆栈。

例如,以下代码创建一个包含两个文本视图的视图:

struct MyView: View {
    var body: some View {
        VStack {
            Text("First Text")
            Text("Second Text")
        }
    }
}

这里,VStack 布局视图会在垂直方向上依次摆放两个文本视图,称为隐式堆栈。

您也可以在隐式堆栈中使用条件语句、循环和其他 SwiftUI 视图。例如,以下代码使用条件语句添加了一个文本视图:

struct MyView: View {
    var isOn: Bool = false
    
    var body: some View {
        VStack {
            Text("First Text")
            if isOn {
                Text("Second Text")
            }
            Text("Third Text")
        }
    }
}

在这个例子中,第二个文本视图取决于布尔值 isOn 的值。如果 isOn 为 true,则添加第二个文本视图。否则,只有第一个和第三个文本视图。通过条件语句和隐式堆栈,视图会在运行时自动适应所包含的子视图数量。

隐式堆栈在 SwiftUI 中为复杂布局提供了一种简单且易于理解的方法。