Анимация объектов при прокрутке UIScrollView

У меня есть UIScrollView, который имеет две страницы и прокручивается только по горизонтали.

Прокрутка и пейджинг управляются с помощью UIPageControl. Я поместил UIImageView в scrollView, который содержит изображение iPhone (показан красным на изображении ниже) с надписью Hello на странице 1.

Я хотел анимировать UIImageView для поворота и изменения его положения, как показано на изображении, когда пользователь прокручивает страницу-1 на страницу-2. Также анимация в идеале должна вращаться назад, когда пользователь прокручивает страницу со страницы 2 на страницу 1.

Анимация на основе UIScrollView

Анимация или движение UIImageView основаны на том, насколько пользователь прокручивает страницу по горизонтали, а не на времени.

Как я могу вращать UIImageView вперед и назад в зависимости от положения прокрутки UIScrollView?


person carbonr    schedule 12.08.2013    source источник
comment
вы можете использовать CABasicAnimation с transform.rotation animationWithKeyPath для выполнения этого типа анимации вращения с предложением @rob   -  person Nitin Gohel    schedule 12.08.2013
comment
animationWithKeyPath, о котором вы упоминаете. Возможно, вы знаете, где найти дополнительную информацию помимо Apple Doc.   -  person carbonr    schedule 12.08.2013
comment
проверьте это: - developer.apple.com/ библиотека/ios/documentation/GraphicsImaging/   -  person Nitin Gohel    schedule 12.08.2013


Ответы (2)


Установите делегата для просмотра прокрутки. Вероятно, вы хотите, чтобы ваш контроллер представления был делегатом. Вам нужно добавить UIScrollViewDelegate в его список протоколов.

Затем в делегате реализуйте scrollViewDidScroll:. В scrollViewDidScroll: посмотрите на прокрутку contentOffset. На основе contentOffset установите transform и center вида изображения, чтобы повернуть и переместить его туда, куда вы хотите.

person rob mayoff    schedule 12.08.2013
comment
не могли бы вы добавить пример использования transform с contentOffset - person carbonr; 12.08.2013

Чтобы узнать, насколько прокрутилось представление прокрутки, вы можете проверить свойство contentOffset UIScrollView:

contentOffset — точка, в которой начало представления содержимого смещено от начала представления прокрутки.

Затем, чтобы повернуть это изображение, вы можете сделать это:

self.imageview.transform = CGAffineTransformMakeRotation(M_PI/2);

Что касается анимации, лично у меня нет большого опыта с ней. Но вы можете взглянуть на Простая анимация с использованием UIImageView.

person geekchic    schedule 12.08.2013
comment
вместо фиксированного M_PI/2 нам может потребоваться изменить угол в соответствии со смещением содержимого - person HarshIT; 23.01.2014