0

메시지 앱 복사 메시지 기능을 구현 중입니다.iOS : 두 제스처, 하나의 타겟 - 액션

메시지를 두 번 탭하거나 길게 눌러 복사 할 수 있습니다.

어떻게하면됩니까?

I 뷰 두 제스처 인식기를 추가 생각 번 UITapGestureRecognizer 하나 UILongPressGestureRecognizer (numberOfTapsRequired2로 설정된). 둘 다 동일한 목표를 가지고 있습니다. & 조치.

그런 다음 나는 각각에 대해 requireGestureRecognizerToFail:이라고 말하고 다른 제스처 인식기를 전달합니다.

내 생각이 맞습니까? 내가 누락 된 것이 있거나 더 좋은 방법이 있습니까?

답변

0

보기에 제스처를 추가하고 (프로그래밍하기 쉽도록) 선택기를 원하는 방법으로 설정하십시오. 그러나 여기에 오기 전에 문제를 해결하려고 시도한 코드 나 힌트를 제공하지 않으므로 아마도 약간 뒤로 물러 설 것입니다. 나는 여기서도 새로운데, 그런 이유로 몇 가지 질문을 보았다.

0

두 번 탭하면 길게 눌러 메시지를 복사합니다. 그래서 두 사람은 같은 행동을하고 있습니다. 그래서 나는 당신이 같은 방법으로 그것을 할 수 있다고 생각합니다. shouldRecognizeSimultaneouslyWithGestureRecognizer :

0

당신은 UIGestureRecognizerDelegate

gestureRecognizer에서이 방법을 시도 할 수 있습니다

은 자세한 내용이 참조 : https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIGestureRecognizerDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intfm/UIGestureRecognizerDelegate/gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer는 :

이 한 번에 두 개 이상의 제스처 인식기를 인식하는 데 도움이됩니다.

0

네, 말하듯이 두 개의 제스처 인식기 (길게 누르기와 두 번 살짝 누르기)를 만들고 두보기를 모두 같은보기에 추가하십시오.

길게 누르기 & 두 번 누르기 제스처가 기본적으로 함께 잘 동작하기 때문에 어느 쪽이든 requireGestureRecognizerToFail:을 호출하지 마십시오.

두 대상에 동일한 대상과 동작을 부여 할 수 있지만 각 동작에는 복사 메뉴를 표시할지 여부를 결정하는 데 다른 논리가 필요합니다.

- (void)messageCopyMenuShowAction:(UILongPressGestureRecognizer *)gestureRecognizer 
{ 
    BOOL doubleTap = (gestureRecognizer.numberOfTapsRequired == 2); 
    if ((doubleTap && gestureRecognizer.state == UIGestureRecognizerStateEnded) || // double-tap 
     (!doubleTap && gestureRecognizer.state == UIGestureRecognizerStateBegan)) { // long-press 
     // Show copy menu. 
    } 
} 
관련 문제