Как заблокировать жест касания на UIPageViewController с помощью Scroll TransitionStyle - PullRequest
0 голосов
/ 13 ноября 2018

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

Я уже пробовал это решение в методе 'viewDidLoad':

for recognizer in gestureRecognizers {
    if recognizer is UITapGestureRecognizer {
        recognizer.isEnabled = false
    }
}

Но это сработало только для случая, когда для Page Curl установлено TransitionStyle, в моем случае мне нужно использовать Scroll TransitionStyle.

Ps. Я также нашел комментарий в реализации UIPageViewController о том, что gestureRecognizers заполняется только в том случае, если стиль перехода равен UIPageViewControllerTransitionStylePageCurl, поэтому потребуется более крупный "хак", надеюсь, вы поможете мне с этим.

Pps. Да, я нашел это - UIPageViewController не возвращает распознаватели жестов в iOS 6 . решение, но оно довольно старое и в objC, и я был бы рад использовать Swift здесь.

ОЧП. Установка dataSource на nil не будет работать - мне нужен жест смахивания.

1 Ответ

0 голосов
/ 13 ноября 2018

Вам необходимо реализовать UIGestureDelegate, а затем отменить жест при обнаружении такового.

Я думаю здесь Вы можете увидеть хороший пример, как это сделать

...