Как позиционировать и анимировать подпредставления в UIView? - PullRequest
0 голосов
/ 27 февраля 2019

A UIViewControler содержит UIScrollView, который содержит три разных страницы.При запуске центральная страница отображается с парой других представлений, представляющих два столбца контента.Эти представления содержимого являются подпредставлениями ScrollView, чтобы иметь возможность свободно перемещаться между различными страницами.

Если пользователь прокручивает на левую страницу, некоторые представления содержимого (зеленые в макете) должны перейти к этому.страницы (анимированные), в то время как другие виды, которые не были видны до этого, перемещаются (например, зеленый кружок внизу)Ход анимации / движения должен контролироваться позицией прокрутки / прогрессом.

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

Как это можно решить?

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

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

Итак, как реализовать такие движения вида и как их анимировать?

Было бы идеально, если бы я мог определить один набор макетов / ограничений для начальной позиции,один макет для левой страницы и один макет для правой страницы и iOS SDK каким-то образом анимируют переходы между этими макетами.

Это можно сделать путем переключения между различными наборами ограничений в анимационном блоке UIView, ноэто позволит только полностью анимировать, например, от "layout cente" до "layout left".Но в этом случае анимация должна контролироваться прокруткой: если левая страница прокручивается на 50% в ее окончательное положение, то представления контента должны быть на 50% между их расположением по центру и левым расположением.

Возможно ли это как-нибудь?

enter image description here

Редактировать:

Красных рамок на виде в центре последнего изображения быть не должно.Ящики перенесены на правую страницу.

...