UIView анимация флип с осью на верхней части зрения - PullRequest
0 голосов
/ 10 декабря 2011

У меня есть UIView, который я хотел бы оживить сальто.Это не похоже на UIViewAnimationOptionTransitionFlipFromTop, потому что это помещает эту ось в середину вида.Я бы хотел, чтобы ось была на top вида, чтобы она всплывала так же, как лист бумаги отрывается от top axis (НЕ шелушение страницы).Я думаю, что это невозможно сделать с помощью стандартных UIView параметров анимации.Какова альтернатива этому, где я могу управлять поворотной осью?

1 Ответ

3 голосов
/ 10 декабря 2011

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

  |-----|
  |     |
  |  B  |
  |     |
0 |     |
  ||---||
  || A ||
  ||---||
  |-----|

A - представление, которое вы хотите перевернуть;B - контейнер;0 это верхняя часть экрана.Примените свой переход к B;переворачивая B по центру, вы переворачиваете A вдоль его вершины.

Вы также можете сделать что-то более сложное и просто реализовать переворот самостоятельно, используя Core Animation, но это немного проще.

Отредактировано:

Если вы хотите использовать подход Core Animation, в основном вам нужно применить CATransform3D к слою, чтобы повернуть его вокруг горизонтальной оси, то есть theLayer.transform = CATransform3DMakeRotation(M_PI, 1, 0, 0).Это перевернет его через середину, однако, это то, что вам не нужно, поэтому вам также нужно изменить значение anchorPoint слоя со значения по умолчанию (0.5, 0.5) на (0.5, 0), чтобы его «источник» былв центре его верхнего края.Вы также можете применить эффект перспективы к обратному преобразованию, используя элемент m34 CATransform3D, как описано здесь .

...