SwiftUI:将视图作为属性

有很多方法可以简化在SwiftUI中使用复杂的视图层次结构,一种选择是使用属性——将视图创建为您自己的视图的属性,然后在布局中使用该属性。

例如,我们可以创建两个像这样的文本视图作为属性,然后在VStack中使用它们:

struct ContentView: View {
    let motto1 = Text("Draco dormiens")
    let motto2 = Text("nunquam titillandus")

    var body: some View {
        VStack {
            motto1
            motto2
        }
    }
}

您甚至可以在使用这些属性时直接将修饰符应用于这些属性,如下所示:

VStack {
    motto1
        .foregroundColor(.red)
    motto2
        .foregroundColor(.blue)
}

将视图创建为属性可以帮助您使body代码更清晰——不仅有助于避免重复,而且还可以使用body属性之外的复杂代码。

Swift不允许我们创建一个引用其他存储属性的存储属性,因为在创建对象时会引起问题。这意味着尝试创建绑定到本地属性的TextField将导致问题。

但是,您可以根据需要创建计算属性,如下所示:

var motto1: some View { Text("Draco dormiens") }

译自Views as properties

Previous: 环境修饰符 Hacking with iOS: SwiftUI Edition Next: 视图拆分与组合

赏我一个赞吧~~~

你可能感兴趣的:(SwiftUI:将视图作为属性)