Slideshow for iOS. Easy to use. Support manual or automatic slideshow, with fade and slide transitions. Support local and remote images.
This version introduces a lot of breaking changes. Make sure to have a look at the demo.
- Usage is now centered around the
datasource
protocol. - Changed
datasource
anddelegate
protocols methods for more consistency - Introducing the long awaited remote image handling! Just put a valid image NSURL into your
datasource
and you're all set.
Simply copy into your project folder :
- KASlideShow.h
- KASlideShow.m
Using cocoapods
add this line to your Podfile :
pod 'KASlideShow'
- (void)viewDidLoad
{
[super viewDidLoad];
_datasource = @[[UIImage imageNamed:@"test_1.jpg"],
[NSURL URLWithString:@"https://i.imgur.com/7jDvjyt.jpg"],
@"test_3.jpg"];
_slideshow = [[KASlideShow alloc] initWithFrame:CGRectMake(0,0,320,250)];
_slideshow.datasource = self;
_slideshow.delegate = self;
[_slideshow setDelay:3]; // Delay between transitions
[_slideshow setTransitionDuration:1]; // Transition duration
[_slideshow setTransitionType:KASlideShowTransitionFade]; // Choose a transition type
[_slideshow setImagesContentMode:UIViewContentModeScaleAspectFill]; // Choose a content mode for images to display
[_slideshow addGesture:KASlideShowGestureTap]; // Gesture to go previous/next directly on the image
}
#pragma mark - KASlideShow datasource
- (NSObject *)slideShow:(KASlideShow *)slideShow objectAtIndex:(NSUInteger)index
{
return _datasource[index];
}
- (NSUInteger)slideShowImagesNumber:(KASlideShow *)slideShow
{
return _datasource.count;
}
#pragma mark - KASlideShow delegate
- (void) slideShowWillShowNext:(KASlideShow *)slideShow
{
NSLog(@"slideShowWillShowNext, index : %@",@(slideShow.currentIndex));
}
You need to implement the datasource to display images.
KASlideShow can handle UIImage
, NNString
(name of local image) and NSURL
(URL of remote image).
- (NSObject *) slideShow:(KASlideShow *)slideShow objectAtIndex:(NSUInteger)index;
- (NSUInteger) slideShowImagesNumber:(KASlideShow *)slideShow;
[_slideshow next]; // Go to the next image
[_slideshow previous]; // Got to the previous image
[_slideshow start]; // Start automatic slideshow
[_slideshow stop]; // Stop automatic slideshow
- (void) slideShowDidShowNext:(KASlideShow *) slideShow;
- (void) slideShowDidShowPrevious:(KASlideShow *) slideShow;
- (void) slideShowWillShowNext:(KASlideShow *) slideShow;
- (void) slideShowWillShowPrevious:(KASlideShow *) slideShow;
- (void) slideShowDidSwipeLeft:(KASlideShow *) slideShow;
- (void) slideShowDidSwipeRight:(KASlideShow *) slideShow;
Here are the 3 available types of transitions you can set via setTransitionType
.
KASlideShowTransitionFade
KASlideShowTransitionSlideHorizontal
KASlideShowTransitionSlideVertical
You can furthermore specify the transition duration via setTransitionDuration
.
Two types gestures are available to interact with the slideshow via the addGesture
method. It is possible to add them both.
KASlideShowGestureTap
KASlideShowGestureSwipe
KASlideShowGestureAll