如何制作一个可重复使用的 SwiftUI 视图,其主体可以像列表一样填写?

How do I make a reusable SwiftUI View with a body I can fill in like List?

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

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

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

这可能吗?如果是这样,我将如何声明这个 class?

您可以使用 @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")
        }
    }
}