Ограничить угол прокрутки для прокрутки UIScrollView

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

Я знаю, что я могу получить угол прокрутки, переопределяя scrollViewDidScroll и сравнивая предыдущее и текущее contentOffset, но я не могу остановить прокрутку прокрутки.

Как я могу ограничить угол прокрутки, который прокручивает UIScrollView?

+1
источник поделиться
1 ответ

Я думаю, что scrollViewDidScroll слишком поздно для того, чего вы хотите достичь.

Возможно, попробуйте установить для свойства directionalLockEnabled UIScrollView значение YES. (Не уверен, что это помогает... но поиграйте с ним)

И/Или реализовать метод UIScrollViewDelegate - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView и в рамках этой реализации методов захватить указатель на свойство panGestureRecognizer (readonly) переданного UIScrollView.

Оттуда вызывается translationInView: в UIPanGestureRecognizer, передавая представление, в системе координат которого необходимо вычислить перенос жесты панорамы, а с помощью CGPoint возвратить тригонометрию, чтобы вычислить угол, и если он не находится в заданных пределах, вызовите setTranslationInView: на UIPanGestureRecognizer для восстановления.

0
источник

Посмотрите другие вопросы по меткам или Задайте вопрос