Skip to content

A simple view for building card like interface inspired by Tinder and Potluck.

License

Notifications You must be signed in to change notification settings

zhxnlai/ZLSwipeableView

Folders and files

NameName
Last commit message
Last commit date

Latest commit

3714665 · Feb 21, 2016

History

73 Commits
Nov 28, 2014
Oct 26, 2015
Oct 26, 2015
Oct 26, 2015
Feb 7, 2015
Feb 5, 2015
Nov 28, 2014
Feb 21, 2016
Oct 26, 2015

Repository files navigation

ZLSwipeableView

Build Status Gitter

A simple view for building card like interface like Tinder and Potluck. ZLSwipeableView was originally developed for Murmur.

Notice: The Objective-C version of ZLSwipeableView is no longer actively maintained.

Please checkout the swift version: https://github.com/zhxnlai/ZLSwipeableViewSwift

Preview

###Swipe swipe ###Swipe Cancel cancel ###Swipe Programmatically swipeLeft ###Swipe Programmatically II swipeLeftRight

CocoaPods

You can install ZLSwipeableView through CocoaPods adding the following to your Podfile:

pod 'ZLSwipeableView'

Usage

Check out the demo app for an example.

ZLSwipeableView can be added to storyboard or instantiated programmatically:

ZLSwipeableView *swipeableView = [[ZLSwipeableView alloc] initWithFrame:self.view.frame];
[self.view addSubview:swipeableView];

A ZLSwipeableView must have an object that implements ZLSwipeableViewDataSource to act as a data source. ZLSwipeableView will prefetch three views in advance to animate them.

// required data source
self.swipeableView.dataSource = self;

#pragma mark - ZLSwipeableViewDataSource
- (UIView *)nextViewForSwipeableView:(ZLSwipeableView *)swipeableView {
  return [[UIView alloc] init];
}

The demo app includes examples of both creating views programmatically and loading views from Xib files that use Auto Layout.

A ZLSwipeableView can have an optional delegate to receive callback.

// optional delegate
self.swipeableView.delegate = self;

#pragma mark - ZLSwipeableViewDelegate
- (void)swipeableView:(ZLSwipeableView *)swipeableView
         didSwipeView:(UIView *)view
          inDirection:(ZLSwipeableViewDirection)direction {
    NSLog(@"did swipe in direction: %zd", direction);
}
- (void)swipeableView:(ZLSwipeableView *)swipeableView didCancelSwipe:(UIView *)view {
  NSLog(@"did cancel swipe");
}
- (void)swipeableView:(ZLSwipeableView *)swipeableView didStartSwipingView:(UIView *)view atLocation:(CGPoint)location {
    NSLog(@"did start swiping at location: x %f, y%f", location.x, location.y);
}
- (void)swipeableView:(ZLSwipeableView *)swipeableView swipingView:(UIView *)view atLocation:(CGPoint)location  translation:(CGPoint)translation {
	NSLog(@"swiping at location: x %f, y %f, translation: x %f, y %f", location.x, location.y, translation.x, translation.y);
}
- (void)swipeableView:(ZLSwipeableView *)swipeableView didEndSwipingView:(UIView *)view atLocation:(CGPoint)location {
    NSLog(@"did start swiping at location: x %f, y%f", location.x, location.y);
}

To swipe the top view programmatically:

[self.swipeableView swipeTopViewToLeft];
[self.swipeableView swipeTopViewToRight];
...

To discard all views and reload programmatically:

[self.swipeableView discardAllViews];
[self.swipeableView loadViewsIfNeeded];

Requirements

  • iOS 7 or higher.
  • Automatic Reference Counting (ARC).

Credits

  • Thanks iamphill for adding new delegates.
  • Thanks mdznr for making the code style consistent.
  • Thanks coryalder for making dataSource and delegate IBOutlets.

License

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

About

A simple view for building card like interface inspired by Tinder and Potluck.

Resources

License

Stars

Watchers

Forks

Packages

No packages published