SwiftUI 结构体的下标方法使用结构体来访问

11 min read

SwiftUI 中的结构体表示视图层次结构中的元素,可以通过下标方法来访问和修改结构体的属性。下面是一个示例:

struct MyView: View {
    var title: String
    var body: some View {
        Text(title)
    }
    
    subscript(_ color: Color) -> some View {
        return body.foregroundColor(color)
    }
}

struct ContentView: View {
    var body: some View {
        VStack {
            MyView(title: "Hello, world!")[.red]
        }
    }
}

在上面的代码中,我们定义了一个名为 MyView 的结构体,它有一个 title 属性和一个 body 属性(返回一个 Text 视图)。我们还实现了一个下标方法,该方法接受一个 Color 参数并返回一个带有颜色文本的视图。

ContentView 中,我们创建了一个 VStack,并使用下标方法来访问和修改 MyView 的属性。我们将 .red 作为参数传递给下标方法,以将文本设置为红色。

使用结构体的下标方法可以使代码更加简洁和易读,特别是在需要访问结构体属性时。