2017-02-01 10 views
0

UIViewController에는 스크롤 스타일을 사용하는 UIPageViewController이 있습니다. 사용자는 평소대로 페이지를 스 와이프 할 수 있습니다. 이제 페이지 뷰 컨트롤러가 포함 된 외부보기 컨트롤러에 두 손가락 UISwipeGestureRecognizer을 추가하려고합니다. 사용자가 한 손가락을 스 와이프하여 페이지를 전환하고 두 손가락을 스 와이프하여 다른 작업을 트리거 할 수 있기를 바랍니다. 하지만 기본적으로 두 손가락으로 스 와이프하면 iOS가 페이지를 스크롤하고 두 손가락 제스처를 무시합니다. 이 문제를 해결하기 위해 두 손가락 스 와이프 제스처가 실패하도록 pageViewController.scrollView.panGestureRecognizer을 설정했습니다. 그렇다면 두 가지를 모두 인식 할 수는 있지만 문제는 두 손가락이 스 와이프가 실패하기를 기다리고 있기 때문에 한 손가락으로 페이지를 빠르게 스 와이프하기 어렵게 만드는 것입니다. 그것은 많은 스 와이프 입력을 무시하므로 한 손가락으로 스 와이프하여 페이지를 전환하기 전에 잠시 기다려야합니다. 또한 팬 제스처의 minimumNumberOfTouchesmaximumNumberOfTouches1으로 설정하려고 시도했지만 동일하게 작동합니다.두 손가락 스 와이프 제스처 및 UIPageViewController와의 충돌 방지

두 손가락으로 스 와이프 할 때 두 손가락을 인식하지만 한 손가락을 인식하여 스 와이프하여 페이지를 전환하는 것을 인식하지 못하게하려면이 작업을 제대로 수행하려면 어떻게해야합니까? 모든

답변

0

첫째, 당신은 당신의 두 손가락 UISwipeGestureRecognizer의 액션 메소드를 호출 할 때, 그리고 UIGestureRecognizerDelegate

func gestureRecognizer(UIGestureRecognizer, shouldRecognizeSimultaneouslyWith: UIGestureRecognizer) { 
    return true 
} 

사용하여 확인 UISwipeGestureRecognizerpanGestureRecognizer과 동시에 인식 할 필요가 수동으로 panGestureRecognizer를 재설정합니다.

pageViewController.scrollView.panGestureRecognizer.isEnabled = false 
pageViewController.scrollView.panGestureRecognizer.isEnabled = true