UIScrollView проблема - PullRequest
       1

UIScrollView проблема

0 голосов
/ 14 февраля 2011

У меня есть UIScrollView с текстовыми представлениями в качестве подпредставлений. Теперь в моем приложении есть несколько таких UIScrollViews. И в зависимости от выбора я отображаю соответствующий UIScrollView поверх предыдущего представления. Это прекрасно работает во всех случаях, кроме случаев, когда предыдущее представление также было UIScrollView. В этом случае поведение, которое я получаю, состоит из двух UIScrollView, расположенных друг над другом, и оба представления фиксируют события прокрутки. TextViews из предыдущего scrollView также виден (хотя и не редактируется) и перекрывается и вызывает всевозможные проблемы. Дело в том, что полноэкранный UIScrollView, помещенный как подпредставление к предыдущему представлению, вызывает проблемы, когда предыдущее представление также является полноэкранным UIScrollView.

Любые указатели на то, как это преодолеть, были бы великолепны. Можно ли как-то уведомить родительское представление прокрутки о событиях прокрутки ребенка и переместить его точно так же, чтобы этот беспорядок был замаскирован?

Спасибо!

Ответы [ 2 ]

1 голос
/ 14 февраля 2011

Документация UIScrollView говорит:

Важно : Вы не должны встраивать объекты UIWebView или UITableView в объекты UIScrollView. В этом случае может возникнуть непредвиденное поведение, поскольку события касания для двух объектов могут быть смешаны и неправильно обработаны.

Насколько я знаю, обычно не рекомендуется встраивать экземпляр подкласса UIScrollView в UIScrollView. В одном из моих проектов, который является приложением для обмена мгновенными сообщениями, у меня есть UIScrollView, который содержит много UITableViews, он работает, когда вы достаточно стараетесь, но на самом деле требуется много усилий для обработки скрытых ошибок и правильной работы.

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

0 голосов
/ 16 февраля 2011

Нашли грубое решение, представив пустое представление перед тем, как представить следующий scrollView. Добавил scrollView как подпредставление к этому пустому представлению (с изображением BG) и добавил представляемый scrollView в качестве подпредставления к нему, а затем представил его поверх предыдущего scrollView.

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