Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What iPhone OS APIs could I use to implement a transition animation similar to the iBook page flip transition?

I'm building an iPad app that will have multiple paper pages and I'd like to implement a page transition effect that is similar to the animation you see when you turn pages in the iBooks app on the iPad. A few questions...

  1. Is that animation readily available somewhere in the UIKit API or would I have to implement it myself?
  2. If I have to implement it myself, what's a good approach or API I should look into? It definitely has a 3D feel to it, could they be using the OpenGL ES API for that?
like image 721
BeachRunnerFred Avatar asked Apr 15 '10 15:04

BeachRunnerFred


4 Answers

Apple certainly uses OpenGL ES to implement it. The actual API Apple uses is private, but this blogger has the starting of an implementation with sample code.

like image 85
Ben S Avatar answered Nov 04 '22 03:11

Ben S


If you want to implement your own solution using OpenGL ES, here's a writeup to get you started. While I'm not sure if this is the same algorithm that Apple uses, it looks pretty close. At least it won't get your app banned for using a private API.

like image 41
wdn Avatar answered Nov 04 '22 02:11

wdn


The problem was that the API containing the page curl library used in producing that same effect remains undocumented so it can’t be used in the app store. Fortunately Ole Begemann has created a Github project where he has provided some code which allows you to easily add a very similar effect into your own apps.

Tom Brow (http://tombrow.com/) initially created a project for an iBooks-like page turning interface called Leaves(http://github.com/brow/leaves), which was later branched(http://github.com/ole/leaves/tree/twopages) by Ole Begemann to support 2 side by side pages in landscape mode.

like image 2
Sagar Avatar answered Nov 04 '22 02:11

Sagar


Just to update the matter, Apple has released an official way (Since 5.0) to use their Animation, check UIPageViewController.

like image 2
JP Illanes Avatar answered Nov 04 '22 03:11

JP Illanes