Skip to content
πŸƒ Tinder like card interface
Swift Ruby
Branch: master
Clone or download
Latest commit dab78b7 Oct 3, 2017
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
DMSwipeCards
Example Ran Swift4 Convert Oct 3, 2017
Screenshots Added more screenshots Dec 19, 2016
.gitignore Added Podfile.lock to gitignore Dec 19, 2016
DMSwipeCards.podspec Disable user interaction when empty & new version Dec 20, 2016
LICENSE Moved proj / pod directory to root Dec 18, 2016
README.md Add code highlighting to readme Jan 3, 2017
_Pods.xcodeproj Moved proj / pod directory to root Dec 18, 2016
screenshot_1482145004.png

README.md

Version License twitter: @dylan36032

image

Features

  • Swift 3
  • Custom views for the card & overlay
  • Generic
  • Dynamically add new cards on top or on the bottom
  • Lazy view loading

Setup

pod 'DMSwipeCards'

Usage

First import the module:

import DMSwipeCards

Next create an instance of a DMSwipeCardsView:
(Element can be your custom model, or just String)

let swipeView = DMSwipeCardsView<Element>(frame: frame,
                                          viewGenerator: viewGenerator,
                                          overlayGenerator: overlayGenerator)

Views get loaded lazy, so you have to provide DMSwipeCardsView with a ViewGenerator and optionally an OverlayGenerator.

let viewGenerator: (String, CGRect) -> (UIView) = { (element: Element, frame: CGRect) -> (UIView) in
  // return a UIView here
}

let overlayGenerator: (SwipeMode, CGRect) -> (UIView) = { (mode: SwipeMode, frame: CGRect) -> (UIView) in
  // return a UIView here
}

Adding cards

To add new cards, just call the addCards method with an array of the previously defined Element:

swipeView.addCards([Element], onTop: true)

Delegate

DMSwipeCardsView has a delegate property so you can get informed when a card has been swipped. The delegate has to implement following methods:

func swipedLeft(_ object: Any)
func swipedRight(_ object: Any)
func cardTapped(_ object: Any)
func reachedEndOfStack()

The object parameter is guarenteed to have the type Element. Sadly generics don't work here.

Example

For a nice working demo sample, please take a look the Example project.
To run the example, first run pod install in the Example directory.

Credits

Loosly based on TinderSimpleSwipeCards

You can’t perform that action at this time.