我正在尝试编写一个协议,要求符合者具有View属性,或者具有返回某些View的@ViewBuilder方法。
我想要一个可重用的组合视图,可以基于需要显示的数据类型构建不同的子视图。
该协议应该如下所示...
protocol RowView {
var leftSide: some View { get }
var rightSide: some View { get }
}
这样我就可以像这样调用某些东西...
struct Example: RowView {
var id: Int
var leftSide: some View { … }
var rightSide: some View { … }
}
struct ContentView: View {
let rows: [RowView]
var body: some View {
VStack {
Foreach(rows, id: \.id) {
HStack {
$0.leftSide
$0.rightSide
}
}
}
}
}