I want print value angle rotate, but Text (self.finaldegree) don’t working.
Code:
@State var degree: Angle = Angle(degrees: 0)
@State var finaldegree: Angle = Angle(degrees: 0)
var body: some View {
VStack {
Image("Encoder_White1")
.padding(100)
.scaleEffect(2)
.rotationEffect(degree+finaldegree)
.gesture(RotationGesture()
.onChanged{ value in
degree = value
}
.onEnded{ value in
finaldegree = value
degree = Angle(degrees: 0)
})
}
}
Text (self.finaldegree)
It's not quite clear what you're trying to do, as there's a a lot of extra code that's probably not needed.
Text(self.finaldegree)
won't work by itself, as Text
expects a String
, or a value that can formatted as a String
(e.g. Int
, Double
, Date
). If you convert your angle into a double (e.g using .degrees
), you can then format that for display, e.g.
Text(angle.degrees, format: .number)
A simplified solution to your code might be:
struct ContentView: View {
@State var angle: Angle = .zero
var body: some View {
VStack {
Image(systemName: "questionmark")
.padding(100)
.scaleEffect(4)
.rotationEffect(angle)
.gesture(
RotationGesture()
.onChanged{ value in
angle = value
}
)
Text("\(Text(angle.degrees, format: .number))°")
}
}
}