Я предполагаю, что анимация работает примерно так:
- Снимок сделан из
Книжная полка и установить содержимое
CALayer.
- Вид на книжную полку
снято с его суперпредставления
- Недавно созданный CALayer (книжная полка
слой) с изображением
Книжная полка добавляется в слой
некоторые существующие (или недавно созданные)
UIView
- еще один слой (сторона
слой) и образ
сторона книжной полки используется как
его содержание. Этот слой добавлен
к UIView Боковой слой
расположен на правом краю
слой книжной полки.
- боковой слой
преобразование настроено на его вращение M_PI_2
Радс вокруг оси Y. это
по существу делает его невидимым
перпендикулярно устройству
экран
- Книжная полка и боковые слои
добавить анимацию
преобразует каждый с M_PI_2
вращение вокруг оси Y. На
вывод этой анимации,
Книжная полка будет перпендикулярна
экран устройства и боковой слой
будет полностью в поле зрения.
- Создается новый слой (слой хранилища), и в качестве содержимого нового слоя добавляется снимок хранилища, он трансформируется и позиционируется так, чтобы при правильном отображении он отображался. , ,
- Для бокового слоя и слоя хранения добавлена анимация, каждая из которых преобразуется с поворотом M_PI_2 вокруг оси y.
- Все слои будут удалены, и отобразится магазин UIView.
У меня нет внутренних знаний о приложении iBooks, но если бы я пытался воспроизвести этот эффект, я бы так и поступил. FWIW, как только вы освоитесь с позиционированием и преобразованием CALayers, будет забавно возиться с такими анимациями.