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)