didSelectItemAt не вызывается при использовании UIPanGestureRecognizer в представлении - PullRequest
0 голосов
/ 29 мая 2018

Я использую жест касания и панорамирования в моем просмотре.В представлении есть UICollectionView, где я пытаюсь вызвать didSelectItemAt, но метод не вызывается.

Я пробовал следующее, но безуспешно.

override func viewDidLoad() {
   panGesture.delegate = self
   tapGesture.delegate = self
}

extension AddNotebookViewController: UIGestureRecognizerDelegate {
    func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
        return true
    }
}

Кто-нибудь знает, в чем проблема?

1 Ответ

0 голосов
/ 29 мая 2018

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

func gestureRecognizerShouldBegin(_ gr: UIGestureRecognizer) -> Bool {
    let p = gr.location(in: self.view)
    let v = self.view.hitTest(p, with: nil)
    return v == gr.view
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...