• Stars
    star
    543
  • Rank 81,848 (Top 2 %)
  • Language
    Objective-C
  • License
    Other
  • Created about 13 years ago
  • Updated over 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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.

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.###