Dillion / iOS-Flip-Transform

Core Animation framework for navigating data by flipping
919 stars 155 forks source link

iOS-Flip-Transform

Summary

Animation component for the effect of flipping as in a news/clock ticker, or a page turn.

Structured around the idea of a data object (i.e. headline in news, number in a clock, page in a book) as an animation frame, comprised of multiple CALayers.

Supports 3 interaction modes:

Supports different types of content:

--

Usage

  1. Create delegate object -
    AnimationDelegate *animationDelegate = [[AnimationDelegate alloc] initWithSequenceType: directionType:];

  2. Create flip view (either vertical or horizontal flip animation type) and assign it to animation delegate -
    FlipView *flipView = [[FlipView alloc] initWithAnimationType: animationDelegate: frame:];
    animationDelegate.transformView = flipView;

  3. Add flip view as subview and customize properties (refer below for configurable list)

  4. Call [flipView printText: usingImage: backgroundColor: textColor:] to draw each frame (minimum of 2)

  5. Call [animationDelegate startAnimation:] to start the animation. For using buttons or pan gesture, look at the animation controller example

Note: To remove jagged edges during flipping, set Renders with edge antialiasing in the project plist to YES. This may decrease performance.

Configurable Properties

Animation Delegate
FlipView

--

Feature Backlog

  1. More flexible and readable way of rearranging layers
  2. Dynamically drawing layers only when they come into view
  3. More realistic and less expensive lighting (specular reflection would be cool)

Contributors

xissburg

--

http://twitter.com/dilliontan