如何使用可以像List一样填充的主体制作可重复使用的SwiftUI View?

时间:2019-07-24 14:18:15

标签: swift swiftui

我想制作一个通用的SwiftUI视图,可以将其插入和插入控件。我不仅希望传递数据,还希望像您一样将子视图传递给List

List{
    Text("This works")
    Text("Hello World")
    Text("This works")
}

MyClass {
    Text("This works")
    Text("Hello World")
    Text("This works")
}

这可能吗?如果是这样,我将如何声明该类?

1 个答案:

答案 0 :(得分:2)

您可以使用@ViewBuilder属性包装器:

struct CustomView<Content: View>: View {
    var content: () -> Content

    init(@ViewBuilder _ content: @escaping () -> Content) {
        self.content = content
    }

    var body: some View {
        VStack {
            content()
        }
    }
}


struct ContentView: View {
    var body: some View {
        CustomView {
            Text("hello")
            Text("world")
        }
    }
}