【发布时间】:2020-07-04 14:31:13
【问题描述】:
我正在尝试创建一个简单的struct,它接受一个视图数组并返回一个普通的VStack,其中包含这些视图,除了它们都是对角堆叠的。
代码:
struct LeaningTower<Content: View>: View {
var views: [Content]
var body: some View {
VStack {
ForEach(0..<views.count) { index in
self.views[index]
.offset(x: CGFloat(index * 30))
}
}
}
}
现在这很好用,但每当我不得不调用它时,我总是很生气:
LeaningTower(views: [Text("Something 1"), Text("Something 2"), Text("Something 3")])
在这样的数组中列出视图对我来说似乎非常奇怪,所以我想知道是否有一种方法可以使用 @ViewBuilder 来调用我的 LeaningTower 结构,如下所示:
LeaningTower { // Same way how you would create a regular VStack
Text("Something 1")
Text("Something 2")
Text("Something 3")
// And then have all of these Text's in my 'views' array
}
如果有办法使用@ViewBuilder 创建/提取视图数组,请告诉我。
(即使实际上无法使用@ViewBuilder,任何让它看起来更整洁的东西都会有很大帮助)
【问题讨论】:
标签: ios arrays swift swiftui viewbuilder