 						contentOffset = newOffset
 						
 						if let draggingView = draggingView {
-                            if isWithinBoundsOfTable(location, withDraggingView: draggingView) {
-                                draggingView.center = CGPoint(x: center.x, y: location.y)
-                            }
+                            draggingView.center = CGPoint(x: center.x, y: getDragginViewsNewYCenter(draggingView, with: location))
 						}
 						
 						updateCurrentLocation(gesture)

		}
	}
    
    fileprivate func isWithinBoundsOfTable(_ location: CGPoint, withDraggingView draggingView: UIView) -> Bool {
        let cellHalfHeight = draggingView.frame.height / 2
        let bottomBound = contentSize.height - cellHalfHeight
        if location.y < cellHalfHeight || location.y > bottomBound {
            return false
        }
        return true
    }
	
}

		else if gesture.state == .changed {
			
			if let draggingView = draggingView {
				// Update position of the drag view
                draggingView.center = CGPoint(x: center.x, y: getDragginViewsNewYCenter(draggingView, with: location))
				if let previousGestureVerticalPosition = self.previousGestureVerticalPosition {
					if location.y != previousGestureVerticalPosition {
						longPressReorderDelegate?.tableView?(self, draggingGestureChanged: gesture)
