[SwiftUI] Long Press Gesture

RudinP·2025년 8월 19일
0

Study

목록 보기
340/351
struct LongPressGesture_Tutorials: View {
    @State private var showOriginal = true
    
    var body: some View {
        Image("swiftui-logo")
            .resizable()
            .aspectRatio(contentMode: .fit)
            .frame(width: 200, height: 200)
            .blur(radius: showOriginal ? 0.0 : 40.0)
            .animation(.easeInOut, value: showOriginal)
            .onLongPressGesture(minimumDuration: 0.5, maximumDistance: 10) {
                showOriginal.toggle()
            } onPressingChanged: { pressing in
                print(pressing)
            }
    }
}

.onLongPressGesture

  • minimumDuration: 기본값 0.5. 롱 프레스로 인식되기 까지 최소한의 시간
  • maximumDistance: 기본값 10.뷰를 누른 상태로 손가락을 움직일 수 있는 최대 거리(pt 기준)
  • perform: 클로저 전달, 롱프레스 인식 후 호출됨
  • onPressingChainging: 클로저, 프레스 상태가 바뀐 뒤에 호출
    • 처음에 제스처가 인식되면 true, perform의 클로저가 실행되고 나서 바로 false 전달됨(손을 뗀 뒤가 아님을 유의)

gesture 모디파이어 사용

    var longPress: some Gesture {
        LongPressGesture()
            .onEnded { _ in
                showOriginal.toggle()
            }
    }
    ...
  • 제스처가 인터럽트 없이 정상작동되면 true, 아니면 false 전달됨
.gesture(longPress)
profile
iOS 개발자가 되기 위한 스터디룸...

0개의 댓글