UITapGestureRecognizers
뷰 에 2를 추가하려고합니다 . 하나는 단일 탭이고 다른 하나는 더블 탭 이벤트입니다. 단일 탭 인식기가 예상대로 작동합니다 (자체적으로). 그러나 더블 탭 인식기가 작동하지 않는 것 같습니다.
유무과 같은 특성을 실험을 시도 : cancelsTouchesInView
, delaysTouchesBegan
그리고 delaysTouchesEnded
하지만 여전히 작동하지 않습니다.
두 번 탭하면 싱글 탭 인식기가 항상 활성화되고 더블 탭 이벤트도 슈퍼 뷰로 전송됩니다. 그러나 사용자 정의 더블 탭 인식기는 전혀 알리지 않는 것 같습니다.
문서는 위에서 언급 한 3 가지 속성을 목적으로 사용할 수 있다고 제안합니다. 그러나 어떤 값을 설정해야하며 어떤 인식기 (싱글, 더블 또는 둘 다)인지 확실하지 않습니다. 이것에 익숙한 누군가가 도움이되기를 바랍니다.
다음은 최신 업데이트 코드 블록입니다.
// ****** gesture recognizers ******
- (void)addSingleAndDoubleTapGestureRecognizersToView:(UIView *)view
{
// single tap
UITapGestureRecognizer *singleTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget: tableViewController action: @selector(handleSingleTapOnView:)];
[singleTapRecognizer setNumberOfTouchesRequired:1];
[view addGestureRecognizer: singleTapRecognizer];
// double tap
UITapGestureRecognizer *doubleTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget: tableViewController action: @selector (handleDoubleTapOnView:)];
[doubleTapRecognizer setNumberOfTouchesRequired:2];
[singleTapRecognizer requireGestureRecognizerToFail: doubleTapRecognizer];
[view addGestureRecognizer: doubleTapRecognizer];
}
- (void)handleSingleTapOnView:(id)sender
{
}
- (void)handleDoubleTapOnView:(id)sender
{
}