Кто-нибудь знает, как Apple делает переход на магазин в приложении iBooks? Я знаю, что они используют контроллер модального представления с установленным стилем перехода UIModalTransitionStyleFlipHorizontal, но я не понимаю, как они показывают «глубину» «книжного шкафа», когда они выполняют переход.
iOS iBooks, как анимация магазина
comment
Я тоже хочу знать, как они это делают. Я думаю, что здесь задействован какой-то OpenGL.
- person Tristan   schedule 07.02.2011
Ответы (1)
Я предполагаю, что анимация работает примерно так:
- Делается «моментальный снимок» книжной полки и устанавливается на содержимое CALayer.
- Представление книжной полки удаляется из суперпредставления.
- Вновь созданный CALayer (слой книжной полки) с изображением книжной полки добавляется к слою некоторого существующего (или вновь созданного) UIView
- Создается еще один слой (боковой слой), и в качестве его содержимого используется изображение боковой стороны книжной полки. Этот слой добавляется в UIView. Боковой слой расположен на правом краю слоя книжной полки.
- Трансформация бокового слоя настроена на вращение на M_PI_2 рад относительно оси Y. По сути, это делает его невидимым, поскольку он расположен перпендикулярно экрану устройства.
- К книжной полке и боковым слоям добавлена анимация, которая трансформирует каждый с вращением M_PI_2 вокруг оси Y. В конце этой анимации книжная полка будет перпендикулярна экрану устройства, а боковой слой будет полностью виден.
- Создается новый слой (слой магазина), и в качестве содержимого нового слоя добавляется снимок магазина, он трансформируется и позиционируется так, чтобы он отображался правильно при . . .
- К боковому слою и слою хранилища добавлена анимация, которая трансформирует каждый с вращением M_PI_2 вокруг оси Y.
- Все слои удаляются, и отображается UIView магазина.
У меня нет никаких внутренних знаний о приложении iBooks, но если бы я пытался воспроизвести этот эффект, я бы поступил так. FWIW, как только вы освоите позиционирование и преобразование CALayers, будет довольно весело возиться с такими анимациями.
person
TomH
schedule
20.02.2011