Ken Burns effect for iOS. The feature enables a widely used technique of embedding still photographs in motion pictures, displayed with slow zooming and panning effects, and fading transitions between frames.
Objective-C Ruby
Latest commit ca67598 Jun 17, 2016 @jberlana committed on GitHub Merge pull request #43 from jcmontiel/master
Fix missing call to super on awakeFromNib

README.md

iOS Ken Burns effect

The goal of this project is to create a UIView that can generate a Ken Burns transition when given an array of UIImage objects.

image

To use it, you simply need an instance of JBKenBurnsView and call this method to start the action:

[self.kenView animateWithImages:myImages
                 transitionDuration:6
                       initialDelay:0
                               loop:YES
                        isLandscape:YES];

Installation

I recommend use CocoaPods to install JBKenBurnsView. Simply add the following line to your Podfile:

Podfile

pod 'JBKenBurnsView'

But you can also just drop JBKenBurnsView.m and JBKenBurnsView.h in your project.

Documentation

The project is documented using AppleDocs syntax. But this is a summary:

Start the slideshow

You can start an animation using an NSArray of UIImage or NSString with the paths to the images calling:

- (void)animateWithImages:(NSArray *)images
       transitionDuration:(float)time
             initialDelay:(float)delay
                     loop:(BOOL)isLoop
              isLandscape:(BOOL)isLandscape;

or

- (void)animateWithImagePaths:(NSArray *)imagePaths
           transitionDuration:(float)time
                 initialDelay:(float)delay
                         loop:(BOOL)isLoop
                  isLandscape:(BOOL)isLandscape;
  1. images: NSArray of UIImages.
  2. time: Time in seconds for the transition between images.
  3. delay: Time in seconds until the transition should start.
  4. isLoop: YES if the animation should start again when ended.
  5. isLandscape: If YES optimized to show in Landscape mode.

Stop the animation

When the transition has started you can stop the animation calling:

- (void)stopAnimation;

Add new images to the animation

Or add new images to the array of images in the slide show with:

- (void)addImage:(UIImage *)image;

KenBurnsViewDelegate

There is a protocol that notifies to the delegate when an image changes or the slideshow ended.

@protocol KenBurnsViewDelegate <NSObject>

@optional
- (void)kenBurns:(JBKenBurnsView *)kenBurns didShowImage:(UIImage *)image atIndex:(NSUInteger)index;
- (void)kenBurns:(JBKenBurnsView *)kenBurns didFinishAllImages:(NSArray *)images;

@end

TODO

  • Need to allow device rotation.
  • Improvements on image transition effects.

Demo

Build and run the KenBurnsDemo project in Xcode to see JBKenBurnsView in action.

Swift version

@gatada wrote a Swift version of JBKenBurnsView that you can find here.

Communication

  • If you found a bug, open an issue.
  • If you have a feature request, open an issue.
  • If you want to contribute, submit a pull request.

Thanks a lot to all the people that have collaborated on this library:

Contact

Javier Berlana

License

JBKenBurnsView is available under the MIT license. See the LICENSE file for more info.

SweetBits, welcome to the candy factory.