1

화면 주위를 이동하고 녹화 할 수있는 작은보기가 있습니다. 그래서 나는 UIPanGestureRecognizer 그것을 이동하고, UITapGestureRecognizer 지금처럼 탭 이벤트를 수신하기 위해 추가UIPanGesture가 작동하지만 UITapGesture가 UIView에서 작동하지 않습니다.

 let panner = UIPanGestureRecognizer(target: self, action: #selector(panDidFire(panner:))) 
     playerViewController.view.addGestureRecognizer(panner) 

     let tapper = UITapGestureRecognizer(target: self, action: #selector(viewTapped(tapper:))) 
     playerViewController.view.addGestureRecognizer(tapper) 

그리고

func viewTapped(tapper: UITapGestureRecognizer){ 
     fadeInButtons() 
    } 
    func panDidFire(panner: UIPanGestureRecognizer) { 
     let offset = panner.translation(in: view) 
     panner.setTranslation(CGPoint.zero, in: view) 
     var center = playerViewController.view.center 
     center.x += offset.x 
     center.y += offset.y 
     playerViewController.view.center = center 
    } 

이 panDidFire() 함수가 때 호출되는

같은 파일에서 작업을 만듭니다 사용자가 팬하지만 viewTapped() 함수는 전혀 호출되지 않습니다.

트릭이 있습니까? 내가 도대체 ​​뭘 잘못하고있는 겁니까? 이것에 대해 다른 방법이 있습니까?

난 당신이보기에 다른 제스처 인식기와 함께 작동 할 수 인식기로 설정해야 신속 3

+0

제스처가 서로 충돌합니까? '패너에게 전화 해. requireGestureRecognizerToFail (tapper)'를 사용하여 tapper가 제스처에서 첫 번째 dib를 가져 오도록합니다. – NRitH

+0

이것의 대부분은 좋아 보이지만, 왜 당신의 제스처를 (let을 통해) 당신의 메소드와 동일한 이름으로 만들었습니까? 또한 메소드 코드를 게시하여 디버깅에 도움이 될 수 있습니다. – dfd

+0

panner.requireGestureRecognizerToFail (tapper)이 아무 것도하지 않는 것 같습니다. 메서드 이름을 변경하려고 시도하고 메서드 코드를 포함하도록 게시물을 편집합니다. – cpatmulloy

답변

1

와 엑스 코드 (8)를 사용하고 있습니다. UIGestureRecognizerDelegate 메서드를 사용하십시오.

gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool 
{ 
    return true 
} 
+0

감사합니다. – cpatmulloy