         return (rows > 0)
             && (indexPath != nil)
             && canMoveRowAt(indexPath: indexPath!)
+            && shouldMoveRowAt(indexPath: indexPath!, forDraggingGesture: longPressGestureRecognizer)
     }
     
 }

        tableView.register(UITableViewCell.self, forCellReuseIdentifier: "Cell")
    }
    
    /// Provides the delegate a chance to modify the cell visually before dragging occurs.
    ///
    /// Defaults to using the cell as-is if not implemented. The default implementation of this method is empty—no need to call `super`.

/// Optional methods of the protocol allow the delegate to modify a cell visually before dragging occurs, or to be notified when a cell is about to be dragged or about to be dropped.
@objc
public protocol LPRTableViewDelegate: NSObjectProtocol {
    
    /// Asks the delegate whether a given row can be moved to another location in the table view based on the gesture location.
    ///
    /// The default is `true`.
    @objc optional func tableView(_ tableView: UITableView, shouldMoveRowAtIndexPath indexPath: IndexPath, forDraggingGesture gesture: UILongPressGestureRecognizer) -> Bool
    
    /// Provides the delegate a chance to modify the cell visually before dragging occurs.
    ///
