2014-09-29 2 views
0

Я пытаюсь использовать автомат с {320,116} UIScrollView с представлением контента {960, 116}. Я сделал это так, чтобы вид прокрутки расширялся или сжимался по высоте, когда пользователь прокручивается вверх или вниз, а горизонтальная прокрутка выгружается (так, в общей сложности три страницы).iOS Autolayout animation reseting contentOffset UIScrollview

Проблема заключается в том, что когда представление расширяется или сворачивается - я делаю это, изменяя верхнее пространство на верхнее руководство по макету, значение смещения содержимого сбрасывается до CGPointZero, поэтому всякий раз, когда представление находится на стр. 2 или 3, сбрасывается до 1 по желанию пользователя, когда он расширяется или сворачивается.

Ведущее пространство UIScrollView к надтаблицы равно 0.

+0

Как прокручивать вверх и вниз, если 'contentView' имеет одинаковую высоту прокрутки? – DeFrenZ

+0

Я добавил еще один распознаватель жестов, который реагирует на движение касания по оси y с помощью 'translInView'. Сгенерированный метод сокращает константу ограничения, тем самым увеличивая высоту прокрутки. Прокрутка выполняется наоборот. Единственная проблема заключается в том, что когда константа ограничения верхнего пространства сокращается, 'contentOffset'' UIScrollView' сбрасывается в CGPointZero, то есть, если 'contentOffset' был {320, 0}, страница 2, он возвращается на страницу 1, поскольку он расширяется/сворачивается. – BridgeTheGap

+0

Тогда почему бы не создать единый горизонтальный 'UIScrollView' с горизонтальным' UIScrollView' с 3 вертикальными неуправляемыми 'UIScrollView' внутри? Кажется более разумным подходом, если ваша цель состоит в том, чтобы сделать 3 отдельных «страницы». – DeFrenZ

ответ

0

Две вещи, которые я узнал.

1) В iOS7, если специально не установлено пространственные и размерные ограничения представления содержимого (вид ребенку UIScrollView) и изменить ограничение постоянной, contentOffset устанавливается в CGPointZero.

2) Эта же проблема не возникает в iOS8, что означает, что даже если у вас нет ограничений для представления содержимого, contentOffset не будет сброшен на CGPointZero.

Смежные вопросы