Я использую SwiftUI
, и я хочу использовать ForEach
l oop, что dr aws концентри c кругов, который регулирует, какой круг выделен Slider
. Когда я запускаю следующий код, я получаю один кружок красного цвета, когда второй кружок должен быть синим, потому что Stepper
равен 2,0. Как я могу обновить цвет представления на основе значения ползунка. Я еще не удосужился добавить ползунок, потому что хотел, чтобы сначала работало постоянное значение. Кто-нибудь знает, как эти концентрические c кружки накладываются друг на друга, причем один из них имеет цвет, отличный от остальных, в зависимости от значения переменной?
import SwiftUI
struct CircleView: View {
@State var color = Color.red
@State var stepperSelector = 2.0
var body: some View {
ZStack {
ForEach((0...5), id: \.self) { x in
Path { path in
var center = (x: 187, y:240)
var radius = Double(185) - Double(x) * Double(185 / 7)
let factor = Double(Int(radius)) / 5
path.move(to: CGPoint(x: center.x + Int(radius), y: center.y))
for i in stride(from: 0, to: 361, by: 1){
let center = CGPoint(x: 187, y: 240)
let i = Double(i)
let radians = i * Double.pi / 180
let x = radius * cos(radians) + Double(center.x)
let y = radius * sin(radians) + Double(center.y)
path.addLine(to: CGPoint(x: x, y: y))
}
}
.fill(self.color)
.onAppear{
if Int(self.stepperSelector) == Int(x) {
self.color = Color.blue
} else {
self.color = Color.red
}
}
}
}
}
}
struct CircleView_Previews: PreviewProvider {
static var previews: some View {
CircleView()
}
}