UIScrollView в UIScrollView - PullRequest
       3

UIScrollView в UIScrollView

4 голосов
/ 05 марта 2010

У меня есть иерархия, в которой UIScrollview существуют друг в друге.

Как перенаправить события смахивания для определенной области во внутреннее представление прокрутки?

Ответы [ 2 ]

2 голосов
/ 05 марта 2010

Если вы устанавливаете ваши UIScrollViews для прокручивания только на одной оси или на другой (т. Е. Устанавливаете для них соответствующее свойство contentSize. Чтобы иметь представление, которое можно прокручивать только по вертикали, установите его значение contentSize.width таким же, как его bounds.size.width). тогда они должны просто работать, предполагая, что никакие два вида не прокручиваются по одной оси. Обычно «дочерние» виды прокручиваются по вертикали, а родительские - по горизонтали.

1 голос
/ 16 марта 2010

Если это вообще возможно, вам следует изменить дизайн, чтобы избежать этого. Safari справляется с такой ситуацией, т. Е. С фреймами и текстовыми полями, с помощью прокрутки встроенного представления двумя пальцами. Это не очень заметно, но лучше, чем альтернатива, которая была бы еще более разочаровывающей. Если встроенный вид был только на экране, попытка прокрутить внешний вид могла бы вместо этого прокрутить внутренний вид, но не показывать ничего; он просто не отвечает.

Тем не менее, если вы все еще хотите это сделать, попробуйте установить для внешнего вида прокрутки значение canCancelContentTouches на NO. Это должно предотвратить прокрутку внешнего вида, когда начинается касание во внутреннем виде. Получение прокрутки двумя пальцами в стиле Safari, вероятно, потребует создания подклассов UIScrollView и реализации метода -touchesShouldBegin:withEvent:inContentView:.

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