[SwiftUI] Sequence Gesture

RudinP·2025년 8월 22일
0

Study

목록 보기
344/352
post-thumbnail

두 개의 제스처를 순서대로 실행할 때 사용

                Circle()
                    .foregroundColor(.yellow)
                    .frame(width: 100, height: 100)
                    .offset(drag.currentTranslation)
                    .offset(drag.totalTranslation)
                    .gesture(longPress.gesture.sequenced(before: drag.gesture))
  • longpress와 drag 제스처는 별도의 observableObject 파일로 구현한 상태

sequenceGesture

  • onChanged는 사용 불가하지만, onEnded는 사용 가능
                    .gesture(longPress.gesture.sequenced(before: drag.gesture).onEnded { _ in
                        //두 제스처가 모두 끝나면 호출됨
                        longPress.activated = false
                    })
  • 동일하게 별도의 프로퍼티로 뽑아내어 가독성을 높일 수 있다. (gesture 모디파이어 사용)
    var sequence: some Gesture {
        SequenceGesture(longPress.gesture, drag.gesture)
            .onEnded { _ in
                //두 제스처가 모두 끝나면 호출됨
                longPress.activated = false
            }
    }
profile
iOS 개발자가 되기 위한 스터디룸...

0개의 댓글