Estou brincando com o SwiftUI para tentar entender melhor, mas não consigo entender essa diferença de comportamento. Neste código de exemplo, por que a visualização struct pode girar enquanto a função @ViewBuilder não gira?
struct ContentView: View {
@State var isSpinning = false
var body: some View {
StructView()
funcView()
}
@ViewBuilder
func funcView() -> some View {
@State var isSpinning = false
VStack {
Button {
isSpinning.toggle()
}label: {
Text("Spin me")
}
Image(systemName: "arrow.clockwise")
.font(.system(size: 80))
.foregroundColor(.blue)
.rotationEffect(.degrees(isSpinning ? 360 : 0))
.animation(.easeInOut(duration: 1), value: isSpinning)
}
.padding()
}
struct StructView: View {
@State var isSpinning = false
var body: some View {
VStack {
Button {
isSpinning.toggle()
}label: {
Text("Spin me")
}
Image(systemName: "arrow.clockwise")
.font(.system(size: 80))
.foregroundColor(.blue)
.rotationEffect(.degrees(isSpinning ? 360 : 0))
.animation(.easeInOut(duration: 1), value: isSpinning)
}
.padding()
}
}
}