1

목표는 동일한 SCNScene에 대해 두 개의 팬 동작을 구현하는 것입니다. 하나는 한 손가락으로 다른 동작은 두 손가락으로 구현하는 것입니다.iOS : 한 손가락 팬 및 두 손가락 팬 제스처를 구현 하시겠습니까?

아래 코드는 작동하지 않습니다. 제스처에 별도의 선택기가 지정되어 있어도 원 - 핑 팬 기능이 호출되지 않습니다. 한 손가락 팬과 두 손가락 팬 모두 sceneViewPannedTwoFingers을 호출합니다.

다른 질문을 읽으면 shouldRecognizeSimultaneouslyWithGestureRecognizer처럼 보일 수 있지만이 팬은 동시에 발생하지 않습니다. 한 손가락 또는 두 손가락으로 움직이는 팬이어야하며 한 번에 두 손가락으로 나눠서는 안됩니다.

위에서 설명한대로 두 개의 팬 제스처를 사용할 수 있습니까? 그렇다면이 작업을 수행하는 올바른 방법은 무엇입니까? 이

class MyClass : UIGestureRecognizerDelegate --< Delegate 
func gestureRecognizer(_: UIGestureRecognizer, 
          shouldRecognizeSimultaneouslyWithGestureRecognizer:UIGestureRecognizer) -> Bool 
    { 
     return true 

    } 
+0

보기 컨트롤러에 UIGestureRecognizerDelegate을 추가하고 뷰 컨트롤러 내부 자체에 제스처 인식기 대리자를 설정하고 귀하의 장면에 –

+0

그들을위한 진정한 반환하는 shouldRecognizeSimultaneouslyWithGestureRecognizer 방법을 추가 'shouldRecognizeSimultaneouslyWithGestureRecognizer'가 해결책이라고 말하는가? 몇 가지 게시물이 동시에 두 개의 제스처를 의미하는 것으로 해석 할 때 문서가 약간 혼란 스럽습니다. 또한 크레딧을받을 수 있도록 전체 답변으로 게시하십시오 (담당자가 필요하지는 않음). –

+0

@LeoDabus를 추가하기 전에'panRecognizer.delegate = self'을 시도 – Crashalot

답변

0

같은

// Handle one-finger pans 
    let panRecognizer = UIPanGestureRecognizer(target: self, action: #selector(sceneViewPannedOneFinger)) 
    sceneView.addGestureRecognizer(panRecognizer) 

    // Handle two-finger pans 
    let twoFingerPanRecognizer = UIPanGestureRecognizer(target: self, action: #selector(sceneViewPannedTwoFingers)) 
    sceneView.addGestureRecognizer(twoFingerPanRecognizer) 


func sceneViewPannedTwoFingers(sender: UIPanGestureRecognizer) { 
    print("two finger pan!!!") 
} 


func sceneViewPannedOneFinger(sender: UIPanGestureRecognizer) { 
    print("one finger pan!!!") 
} 
1

코드는 당신은 당신의 뷰 컨트롤러 내부 자체에보기 컨트롤러에 UIGestureRecognizerDelegate을 추가하고 제스처 인식기 대리자를 설정해야합니다. true를 리턴하는 shouldRecognizeSimultaneouslyWithGestureRecognizer 메소드를 추가하십시오. 최소 접촉 수와 최대 접촉 수를 설정해야합니다.

+0

이 델리게이트 방법 – JAck

+0

을 사용하기 위해 클래스에 위임자를 부여해야하지만, 동시에이 두 가지를 동시에 인식하고 있습니다. 사용자가 한 손가락을 사용하는 경우 한 손가락 선택기를 호출하고 두 손가락을 사용하여 두 손가락 선택기를 호출하는 방법은 무엇입니까? – Crashalot

+0

필요할 때 .. gesture.delegate = self를 사용하십시오. 필요하지 않으면 gesture.delegate = self를 사용하지 마십시오. – JAck