UIPanGestureRecognizer в представлении внутри представления прокрутки работает только спорадически, когда представление прокрутки сильно увеличено.

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

Существует также распознаватель длительного нажатия и двойного нажатия в одном и том же представлении, которые отлично работают при увеличении. Переопределение метода hitTest в представлении прокрутки показывает, что представление UIGesture действительно получает касания при увеличении (что ожидается, учитывая что эти другие распознаватели работают.)

Я пробовал несколько комбинаций cancelContentTouches и других атрибутов в представлении прокрутки, но безуспешно.

У кого-нибудь есть предложения?


person Mike Laurence    schedule 26.10.2010    source источник


Ответы (1)


Один обходной путь, который я пробовал: сделать ваши представления PanGesture братьями и сестрами представления прокрутки и обновить их положение/масштаб вручную с помощью UIScrollViewDelegate didScroll. Тем не менее, вам придется принимать во внимание преобразование вида прокрутки при проверке представлений PanGesture (например, при получении информации о положении).

Очевидно, что это не идеально - если у кого-то еще есть лучшее решение, я был бы рад его услышать!

person Mike Laurence    schedule 28.10.2010