我从一个干净的项目开始,在 VStack 中添加了 5 个按钮和 5 个垫片,一切都很好。当我在底部添加第 6 个间隔时,代码突然无法编译并出现错误:“对成员'buildBlock()'的不明确引用”。
是什么导致了这个错误?这是与 SwiftUI 相关的错误吗?或者它是一个功能?这不是我第一次注意到 VStack 或 HStack 的条目数量有限,是否有相关文档?
不完全鼓舞人心,我应该切换回 UIKit 吗?
我仍然希望得到以下问题的答案。为了清楚起见,我添加了一些评论。
下面的代码通过 (Bezier) 路径生成圆的不同部分,这些路径通过 ZStack 一起连接成 3 个圆的单个图片,其中 25% 被切掉。我想根据 i 和 j 的值(总共 9 个)为每个段赋予不同的颜色。
这似乎是不可能的:在 Contentview 结构和 GeometryReader 中更改前景色都没有任何影响。任何想法如何做到这一点?
第二个问题:我尝试使用“switch”命令,但编译器抱怨“包含控制流语句的闭包不能与函数构建器‘ViewBuilder’一起使用”。不能使用流量控制对我来说似乎很奇怪。我错过了什么或做错了什么?
struct ContentView: View {
static let segmentCount = 4
static let circleCount = 4
var body: some View {
ZStack {
ForEach(1..<ContentView.circleCount){ j in
ForEach(1..<ContentView.segmentCount){i in
GeometryReader { geometry in
arcShape(i: i, j: j)
.scaleEffect(4.0 / 4.0, anchor: .top)
.foregroundColor(Color(red: (79.0 + Double(j) ) / 255, green: 79.0 / 255, blue: 191.0 / 255))
}
}
}
} …Run Code Online (Sandbox Code Playgroud)