我正在try 编写一个协议,要求符合者具有视图属性,或返回一些视图的@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
}
}
}
}
}