Latest 7.0.0
License MIT
Platforms ios 8.0

SwiftReorder is a UITableView extension that lets you add long-press drag-and-drop reordering to any table view. It’s robust, lightweight, and fully customizable.



  • Smooth animations
  • Automatic edge scrolling
  • Works with multiple table sections
  • Customizable shadow, scaling, and transparency effects



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

pod 'SwiftReorder', '~> 6.0'


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

github "adamshin/SwiftReorder" ~> 6.0

Remember to add SwiftReorder to your Carthage build phase:





You can integrate SwiftReorder into your project manually by copying the contents of the Source folder into your project.



  • Add the following line to your table view setup.
    override func viewDidLoad() {
    // ...
    tableView.reorder.delegate = self
  • Add this code to the beginning of your tableView(_:cellForRowAt:).
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    if let spacer = tableView.reorder.spacerCell(for: indexPath) {
        return spacer
    // ...
  • Implement the tableView(_:reorderRowAt:to:) delegate method, and others as necessary.
    extension MyViewController: TableViewReorderDelegate {
    func tableView(_ tableView: UITableView, reorderRowAt sourceIndexPath: IndexPath, to destinationIndexPath: IndexPath) {
        // Update data model

    This method is analogous to the UITableViewDataSource method tableView(_:moveRowAt:to:). However, it may be called multiple times in the course of one drag-and-drop action.


SwiftReorder exposes several properties for adjusting the style of the reordering effect. For example, you can add a scaling effect to the selected cell:

tableView.reorder.cellScale = 1.05

Or adjust the shadow:

tableView.reorder.shadowOpacity = 0.5
tableView.reorder.shadowRadius = 20

Latest podspec

    "name": "SwiftReorder",
    "version": "7.0.0",
    "license": "MIT",
    "summary": "Easy drag-and-drop reordering for UITableViews",
    "homepage": "",
    "authors": "Adam Shin",
    "swift_version": "5.0",
    "platforms": {
        "ios": "8.0"
    "source": {
        "git": "",
        "tag": "7.0.0"
    "source_files": "Source/*"

Pin It on Pinterest

Share This