12.3_如何将视图存储为属性

如果我们有多个嵌套在另一个视图中的视图,我们可能会发现为其中一些或全部视图创建属性非常有用,以使我们的布局代码更容易。 然后,我们可以在视图代码中内联引用这些属性,从而帮助保持代码的清晰。

例如,下面代码会创建两个文本视图作为属性,然后将它们放在VStack中:

struct ContentView: View {
    let title = Text("M X")
        .font(.largeTitle)
    let subtitle = Text("Admin")
        .foregroundColor(.secondary)
    
    var body: some View {
        VStack {
            title
            subtitle
        }
    }
}

效果预览: 12.3_store_views_as_properties 如您所见,我们只需在堆栈中写入属性名称就足以放置它们。

但是,更好的是我们可以将修改器附加到这些属性名称,如下所示:

struct ContentView: View {
    let title = Text("M X")
        .font(.largeTitle)
    let subtitle = Text("Admin")
        .foregroundColor(.secondary)
    
    var body: some View {
        VStack {
            title
                .foregroundColor(.red)
            subtitle
        }
    }
}

效果预览: 12.3_add_modifier_for_view_property

这不会改变标题的基本风格,只会改变它的一个特定用法。

Avatar
M X
Mobile, Front-End Developer

My research interests include swift developing, python developing and go developing.

Related

Next
Previous
comments powered by Disqus