EECellSwipeGestureRecognizer 1.3

EECellSwipeGestureRecognizer 1.3

TestsTested
LangLanguage SwiftSwift
License MIT
ReleasedLast Release May 2020
SPMSupports SPM

Maintained by Enric Enrich.



EECellSwipeGestureRecognizer

CocoaPods Carthage compatible CocoaPods

A clean and easy way to implement swipe actions to UITableViewCell. You'll simply have to add a gesture recognizer to the cells that you want. That's all; you don't have to subclass anything.

This library is writen in Swift based on DRCellSlideGestureRecognizer by David Román.

Features

  • UITableView/UITableViewCell class agnostic.
  • Setup multiple actions for multiple cell fractions.
  • Fully customizable.
  • Block-driven.

Installation

Embedded frameworks require a minimum deployment target of iOS 8, use Xcode 8 and Swift 3.

CocoaPods

CocoaPods is a dependency manager for Objective-C and Swift projects. It has thousands of libraries and can help you scale your projects elegantly. You can install it with the following command:

gem install cocoapods

Podfile

To integrate EECellSwipeGestureRecognizer into your Xcode project using CocoaPods, specify it in your Podfile:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'

target 'TargetName' do
pod 'EECellSwipeGestureRecognizer', '~> 1.3'
end

Then, run the following command:

pod install

Carthage

Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.

You can install Carthage with Homebrew using the following command:

brew update
brew install carthage

To integrate EECellSwipeGestureRecognizer into your Xcode project using Carthage, specify it in your Cartfile:

github "enricenrich/EECellSwipeGestureRecognizer" ~> 1.3

Run carthage to build the framework and drag the built EECellSwipeGestureRecognizer.framework into your Xcode project.

Manual

Drag and copy all files in the Source folder into your project.

At a glance

Setting up actions

First instatiate EECellSwipeGestureRecognizer to later add the actions:

let gestureRecognizer: EECellGestureRecognizer = EECellGestureRecognizer()

Then, simply instantiate EECellSwipeAction like this:

let action: EECellSwipeAction = EECellSwipeAction(fraction: 0.25)
action.behavior = .Push
action.icon = UIImage(named: "yourImage")

Note: fraction determines the part of the cell to where the action will become active and ready to be triggered. It can go from 0 to 1 (swipe to the right), and from 0 to -1 (swipe to the left).

And finally, add the action to the gesture recognizer, and the gesture recognizer to the cell:

gestureRecognizer.addActions([action])
cell.addGestureRecognizer(gestureRecognizer)

Note: The given instructions should be performed inside tableView:cellForRowAtIndexPath: method or in the subclass if you created it.

Customizing actions

There are multiple EECellSwipeAction properties available for you to customize the appearence and interactivity of the cell:

  • behavior: how the action will behave once triggered by the user. Possible values:
  • EECellSwipeActionBehavior.Pull: the cell returns to its original position.
  • EECellSlideActionBehavior.Push: the cell is pushed to the edge of the table.
  • icon: the image to be displayed for the action.
  • iconMargin: the margin for the icon.
  • activeColor: the color of icon when the action is active.
  • inactiveColor: the color of icon when the action is inactive.
  • activeBackgroundColor: the background color when the action is active.
  • inactiveBackgroundColor: the background color when the action is inactive.
  • willTrigger: block that's triggered when the cell is about to behave accordingly to its behavior property.
  • didTrigger: block that's triggered when the cell has already behaved accordingly to its behavior property. Here you should perform the main task for the cell action.
  • didChangeState: block that's triggered then the action reaches its active/unactive state.

License

EECellSwipeGestureRecognizer is available under the MIT license.

Contact

You can find me on Twitter (@enricenrich) or on my website.