iOS iBooks, как анимация магазина

Кто-нибудь знает, как Apple делает переход на магазин в приложении iBooks? Я знаю, что они используют контроллер модального представления с установленным стилем перехода UIModalTransitionStyleFlipHorizontal, но я не понимаю, как они показывают «глубину» «книжного шкафа», когда они выполняют переход.


person rplankenhorn    schedule 18.01.2011    source источник
comment
Я тоже хочу знать, как они это делают. Я думаю, что здесь задействован какой-то OpenGL.   -  person Tristan    schedule 07.02.2011


Ответы (1)


Я предполагаю, что анимация работает примерно так:

  1. Делается «моментальный снимок» книжной полки и устанавливается на содержимое CALayer.
  2. Представление книжной полки удаляется из суперпредставления.
  3. Вновь созданный CALayer (слой книжной полки) с изображением книжной полки добавляется к слою некоторого существующего (или вновь созданного) UIView
  4. Создается еще один слой (боковой слой), и в качестве его содержимого используется изображение боковой стороны книжной полки. Этот слой добавляется в UIView. Боковой слой расположен на правом краю слоя книжной полки.
  5. Трансформация бокового слоя настроена на вращение на M_PI_2 рад относительно оси Y. По сути, это делает его невидимым, поскольку он расположен перпендикулярно экрану устройства.
  6. К книжной полке и боковым слоям добавлена ​​анимация, которая трансформирует каждый с вращением M_PI_2 вокруг оси Y. В конце этой анимации книжная полка будет перпендикулярна экрану устройства, а боковой слой будет полностью виден.
  7. Создается новый слой (слой магазина), и в качестве содержимого нового слоя добавляется снимок магазина, он трансформируется и позиционируется так, чтобы он отображался правильно при . . .
  8. К боковому слою и слою хранилища добавлена ​​анимация, которая трансформирует каждый с вращением M_PI_2 вокруг оси Y.
  9. Все слои удаляются, и отображается UIView магазина.

У меня нет никаких внутренних знаний о приложении iBooks, но если бы я пытался воспроизвести этот эффект, я бы поступил так. FWIW, как только вы освоите позиционирование и преобразование CALayers, будет довольно весело возиться с такими анимациями.

person TomH    schedule 20.02.2011