0

사용자가 팬을 할 때 handlePan: 방법이 있지만 팬이 시작될 때를 알고 싶습니다. touchesBegan을 사용하는 것이 가장 좋습니까? 나는 할 수 있을까? 충돌 하는가?UIPanGestureRecognizer가 뷰에 첨부 된 경우 원할 때마다 touchesBegan 등을 간단하게 사용할 수 있습니까?

어쨌든 touchesMoved은 UIPanGestureRecognizer와 어떻게 다른가요?

+2

애플은 제스처 인식 시스템의 WWDC 비디오에서이 모든 것을 완벽하게 설명합니다. 나는 그들이 2010 년 섹션에 있다고 생각한다. –

+0

UIPanGestureRecognizer를 사용하는 것이 더 쉽습니다. 컨트롤의 움직임을 애니메이션으로 표현할 수도 있습니다. 그리고 컨트롤의 위치를 ​​쉽게 알 수 있습니다. 대안으로 touchesBegan과 touchesMoved가 있습니다. 그래서 두 가지 방법이 있습니다. 컨트롤의 위치를 ​​알려주는 것은 이전처럼 쉽지 않습니다. –

답변

0

제스처 인식기 처리기가 다른 상태로 호출됩니다. 인식기의 상태를 확인하십시오. 이를 통해 시작 시점, 업데이트 (여러 번 호출) 및 종료 시점을 알 수 있습니다. 팬이 시작될 때를 알려면 touchesBegan 메소드를 구현할 필요가 없습니다.

- (void)handlePan:(UIPanGestureRecognizer *)gestureRecognizer { 
    if ([gestureRecognizer state] == UIGestureRecognizerStateBegan) { 
     // handle start of gesture 
    } else if ([gestureRecognizer state] == UIGestureRecognizerStateChanged) { 
     // handle updated position 
    } 
} 

처리 할 수있는 다른 상태가 있습니다. UIGestureRecognizer에 대한 문서를 참조하십시오.