【发布时间】:2020-02-22 15:05:44
【问题描述】:
目标:
我目前正在编写一些代码来创建六边形网格,每个六边形都单独用渐变着色。但是我对 swiftUI 很陌生,不完全理解为什么我的代码不起作用。
代码:
ForEach(0 ..< 11, id: \.self) { Xnum in
ForEach(0 ..< 11, id: \.self) { Ynum in
self.MyNewPath(in: CGRect(), Xcoord: Double(Xnum), Ycoord: Double(Ynum), Type: 1)
.fill(RadialGradient(
gradient: Gradient(colors: [Color.red, Color.blue]),
center: .init(
x: self.gradientParametersX(Xpos: Double(Xnum)),
y: self.gradientParametersY(Ypos: Double(Ynum), Xpos: Double(Xnum))),
startRadius: CGFloat(2.0),
endRadius: CGFloat(70.0)))
.gesture(
TapGesture().onEnded {_ in
self.dataEditor(Xplace: Int(Xnum), Yplace: Int(Ynum))
}
)
}
}
返回类型:
-
MyNewPath()-Path(六边形) -
gradientParametersY()-CGFloat -
gradientParametersY()-CGFloat
错误:
编译器无法在合理的时间内对该表达式进行类型检查;尝试将表达式分解为不同的子表达式
错误似乎集中在将Xnum 和Ynum 传递给函数gradientParametersX() 和gradientParametersY()。
例如当我通过 7.0 和 0.0 时:
x: self.gradientParametersX(Xpos: Double(7.0)),
y: self.gradientParametersY(Ypos: Double(0.0), Xpos: Double(7.0))),
...没有错误。
【问题讨论】:
-
查看stackoverflow.com/questions/60230457/…如何制作六边形网格