2016-10-14 4 views
0

Как вы разрешаете контроллеру вида, контролируемому UIPageViewController, перехватывать левые/правые штрихи?UIPageViewController: перехват прокрутки на одной из своих страниц

Цель состоит в том, чтобы остановить видео, когда пользователь выполняет поиск влево/вправо на странице внутри UIPageViewController. Однако жесты салфетки не распознаются контроллером просмотра страницы. Кажется, что они только распознаются UIPageViewController.

В контроллере просмотра этой страницы этот код используется для регистрации обработчиков салфетки и разрешения одновременных распознавателей жестов.

// Handle swipes 
let leftSwipe = UISwipeGestureRecognizer(target: self, action: #selector(didViewSwipe)) 
let rightSwipe = UISwipeGestureRecognizer(target: self, action: #selector(didViewSwipe)) 
leftSwipe.direction = .left 
rightSwipe.direction = .right 
leftSwipe.delegate = self 
rightSwipe.delegate = self 
view.addGestureRecognizer(leftSwipe) 
view.addGestureRecognizer(rightSwipe) 


func didViewSwipe(_ sender:UISwipeGestureRecognizer) { 
    stopVideo() 
}  


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

ответ

0

Добавить левый и правый жест распознаватель на ваш взгляд:

let right = UISwipeGestureRecognizer(target: self, action: #selector(didViewSwipe(_:))) 
right.direction = .right 
self.view.addGestureRecognizer(right) 

let left = UISwipeGestureRecognizer(target: self, action: #selector(didViewSwipe(_:))) 
left.direction = .left 
self.view.addGestureRecognizer(left) 

захвата прикосновением в функции и посмотреть, в каком направлении красть было:

func didViewSwipe(_ gesture: UIGestureRecognizer) { 
    if let swipeGesture = gesture as? UISwipeGestureRecognizer { 
     switch swipeGesture.direction { 
     case UISwipeGestureRecognizerDirection.right: 
      print("Swiped right") 
     case UISwipeGestureRecognizerDirection.left: 
      print("Swiped left") 
     default: 
      break 
     } 
    } 
} 
+0

К сожалению, да это уже там, но удары не пойманы. – Crashalot

+0

Покажите объявление своего 'UIPageViewController', вам нужно добавить на него жестов. –

+0

Он не должен быть добавлен в UIPageViewController, а один из контроллеров представления, которым он управляет. Другими словами, мы хотим только перехватить салфетки для одного контроллера вида (из пяти). – Crashalot