Цель:
В настоящее время я работаю над некоторым кодом для создания сетки шестиугольников, каждый из которых окрашен градиентом в отдельности. Однако я довольно новичок в 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))),
... ошибки нет.