1. @State 변수 선언
@State private var finalAngle: Angle = .degrees(0)
@State var latestAngle: Angle = .degrees(0)
2. Rotation 제스처 프로퍼티 정의
- 이전 제스처에서 다음 제스처를 실행할 때 연속적으로 움직이게 하려면 누적값을 계산하여 결과값으로 설정하고, 최신 값을 갱신해주는 방식을 취해야함.
var rotation: some Gesture {
RotationGesture()
.onChanged { angle in
let delta = angle - latestAngle
latestAngle = angle
finalAngle += delta
}
.onEnded { angle in
latestAngle = .degrees(0)
}
}
3. rotationEffect 사용 및 gesture 모디파이어
var body: some View {
Image("swiftui-logo")
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: 200, height: 200)
.rotationEffect(finalAngle)
.gesture(rotation)
}