BWSwipeRevealCell
  • October 5, 2023

Using the library

**Note: Use version 1.0.1 for Swift 2.3 support and version 2.0.0 or higher for Swift 3 support **

There are two main classes available – BWSwipeCell and BWSwipeRevealCell

BWSwipeCell – Only contains the pan gesture handling, and is useful mainly for heavy customization through subclassing if all you need is a leg up on swipe interactions

BWSwipeRevealCell – Is an out of the box solution that lets you set images and colors for 1 action on the left and right of the table cell. BWSwipeRevealCell is a subclass of BWSwipeCell.

BWSwipeRevealCell Example

After setting BWSwipeRevealCell as your table cell’s type in the storyboard and setting a delegate. Use this code in your controller:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: “Cell”, for: indexPath) as! BWSwipeRevealCell

swipeCell.bgViewLeftImage = UIImage(named:”Done”)!.withRenderingMode(.alwaysTemplate)
swipeCell.bgViewLeftColor = UIColor.green

swipeCell.bgViewRightImage = UIImage(named:”Delete”)!.withRenderingMode(.alwaysTemplate)
swipeCell.bgViewRightColor = UIColor.red

swipeCell.type = .springRelease

swipeCell.delegate = self // Or whatever your delegate might be
return cell
}

Customizing through the interface

BWSwipeCell properties

var type:BWSwipeCellType

Can be .springRelease.swipeThrough or .slidingDoor. Defaults to .springRelease

var revealDirection: BWSwipeCellRevealDirection

Can be .both.left or .right. Defaults to .both

(readonly) var state: BWSwipeCellState

Can be .normal.pastThresholdLeft or .pastThresholdRight

var threshold: CGFloat

The point at which pan elasticity starts, and state changes. Defaults to the height of the UITableViewCell (i.e. when it form a perfect square)

(readonly) var progress:CGFloat

A number between 0 and 1 to indicate progress toward reaching threshold in the current swiping direction. Useful for changing UI gradually as the user swipes.

var shouldExceedThreshold: Bool

Control whether or not the cell pans past the threshold point

var panElasticityFactor: CGFloat

Control how much elasticity there is past threshold, if it can be exceeded. Default is 0.7 and 1.0 would mean no elastic resistance

var animationDuration: Double

Animation duration. Defaults to 0.2

weak var delegate: BWSwipeCellDelegate?

Set the delegate on the cell

 

@objc public protocol BWSwipeCellDelegate: NSObjectProtocol {
optional func swipeCellDidStartSwiping(cell: BWSwipeCell)
optional func swipeCellDidSwipe(cell: BWSwipeCell)
optional func swipeCellWillRelease(cell: BWSwipeCell)
optional func swipeCellDidCompleteRelease(cell: BWSwipeCell)
optional func swipeCellDidChangeState(cell: BWSwipeCell)
}

BWSwipeRevealCell properties

var bgViewInactiveColor: UIColor

var bgViewLeftColor: UIColor

var bgViewRightColor: UIColor

Colors for inactive, and activated states for left and right

var bgViewLeftImage: UIImage?

var bgViewRightImage: UIImage?

Images for the left and right actions

weak var delegate: BWSwipeRevealCellDelegate?

@objc public protocol BWSwipeRevealCellDelegate:BWSwipeCellDelegate {
optional func swipeCellActivatedAction(cell: BWSwipeCell, isActionLeft: Bool)
}

Set the delegate on the cell

Roadmap

Some brief ideas on ways to improve this library

v 1.x.0 (Swift 2.x version)
  • Complete
v 2.x.0 (Swift 3.x version)
  • Fix bugs
v 3.0.0
v x.0.0 (a.k.a. ideas. PRs welcome.)
  • Customizable interaction per side (i.e. left .SwipeThrough, right .SlidingDoor)
  • Possible subclass for allowing .SlidingDoor to convert to .SwipeThrough past a threshold point (see Mail.app)

GitHub


View Github

#animation #library #swift #swipe #uitableview
YOU MIGHT ALSO LIKE...
exyte

     

camerakit-ios

CameraKit helps you add reliable camera to your app quickly. Our open source camera platform provides consistent capture results, service ...

HybridCamera

[video width="192" height="416" mp4="https://swiftgit.com/wp-content/uploads/2024/12/68747470733a2f2f7261776769742e636f6d2f7374796c656b69742f696d672f6d61737465722f7669645f6564697465645f325f326d622e676966.mp4"][/video]

TakeASelfie

An iOS framework that uses the front camera, detects your face and takes a selfie. This api opens the front ...

iOS-Depth-Sampler

Code examples of Depth APIs in iOS