Как реализовать эффект флип-перехода для UIView - PullRequest
3 голосов
/ 25 января 2012

Как реализовать эффект флип-перехода для UIView, как в приложении «флипборд». здесь у меня уже есть образец, который сделает флип слева направо или справа налево. Но здесь я хочу реализовать флип флип снизу вверх или сверху вниз.

Ответы [ 3 ]

3 голосов
/ 25 января 2012

Вы можете использовать приведенную ниже строку кодов для анимации этого типа

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:5];
[UIView transitionFromView:view2 toView:view1 duration:3 options:UIViewAnimationOptionTransitionFlipFromBottom completion:NULL];
[UIView commitAnimations];  

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

1 голос
/ 03 марта 2012

проверьте этот учебник: http://www.gethugames.in/blog/2012/02/extended-epgltransitionview.html и этот проект: https://github.com/saiy2k/EPGLTransitionView

PS: Это мой собственный блог и ссылка на мой форк EPGLTransitionView

0 голосов
/ 25 января 2012

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

  • В момент запуска анимации сделайте снимок текущего UIView, считав его графический контекст в растровое изображение
  • Создайте три (да, три - голые со мной ) UIView s с размерами, чтобы они составляли две половины переворачиваемого вида, с двумя видами для области справа половина
  • Нарисуйте половину растрового изображения в левом представлении ( первый ), в правой половине в правом представлении ( второй ) в соответствующих drawRect: реализациях
  • Скрыть исходный вид
  • Создайте следующий вид, к которому мы хотим перейти
  • также включает его содержимое в растровое изображение
  • скрыть следующий вид
  • сделать третий временный UIView, чтобы нарисовать правую половину изображения ( третий )
  • позиционирует третий под второй
  • Анимируйте половину перевёрнутого второго по левому краю
  • сделать второй показ левой левой части следующего просмотра
  • Сделать остальную часть анимации сальто
  • После выполнения перехода показать следующий вид, скрыть все временные виды
  • Et voilla! По крайней мере, я надеюсь.

Я думаю, что вместо этих трех UIViews вы могли бы использовать вместо одного UIView с тремя слоями CAL.

Существует проблема интерактивного перехода, когда пользователь проводит пальцем по страницам.

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

Другим решением было бы создать текстуру из содержимого UIView и разместить поверх нее поверхность OpenGL (альфа-прозрачная CAEAGLLayer на основе, конечно). Тогда то, что вы будете делать с треугольниками, которые текстурированы с этим изображением, ограничено только вашим воображением. Я думаю, это также позволило бы создать похожую на Genie анимацию перемещения в корзину, которую использует приложение Mail iOS.

Редактировать: О, извините, я думал о флипборде справа налево, а не сверху вниз, но общая идея, конечно, та же.

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