[SwiftUI] Rotation Gesture

RudinP·2025년 8월 22일
0

Study

목록 보기
343/352

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)
    }
profile
iOS 개발자가 되기 위한 스터디룸...

0개의 댓글