Подтвердить что ты не робот

Как прокрутить UIScrollView и распознать жест?

У меня есть распознаватель жестов в UIScrollView, однако его вряд ли когда-либо вызывают, поскольку UIScrollView ест все жесты.

Я частично обошел эту проблему с этой строкой: [scrollView.panGestureRecognizer requireGestureRecognizerToFail:rightSwipe]; однако эта строка приводит к тому, что мой распознаватель всегда принимается (желаемое поведение) и прокрутки не прокручивается.

То есть, когда вы прокручиваете, распознаватель принимается, но просмотр не прокручивается.

Как я могу обойти это, или есть альтернативное решение?

Спасибо!

4b9b3361

Ответ 1

Сделайте подкласс UIScrollView. Добавьте этот метод в новый подкласс

- (BOOL)gestureRecognizer:(UIPanGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UISwipeGestureRecognizer *)otherGestureRecognizer 
{
    return YES;
}

Сделайте свой класс scrollView в новом подклассе scrollview.

Ответ 2

Метод Swift,
Необходимо добавить UIGestureRecognizerDelegate в ваш класс:

class ViewController: UIViewController, UIGestureRecognizerDelegate {

Вам нужно настроить свой делегат на себя:

override func viewDidLoad() {
    super.viewDidLoad()
    var scrollView = UIScrollView(frame: self.view.frame)
    scrollView.delegate = self
}

Добавьте эту часть в методы класса к активным одновременным жестам:

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