 		else if gesture.state == .changed {
 			
 			if let draggingView = draggingView {
-				// Update position of the drag view,
-				// but don't let it go past the top or the bottom too far.
-                if isWithinBoundsOfTable(location, withDraggingView: draggingView) {
-                    draggingView.center = CGPoint(x: center.x, y: location.y)
-                }
+				// 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)

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

							// Zoom image towards user.
							UIView.beginAnimations("LongPressReorder-Zoom", context: nil)
							draggingView.transform = CGAffineTransform(scaleX: 1.1, y: 1.1)
                            draggingView.center = CGPoint(x: center.x, y: getDragginViewsNewYCenter(draggingView, with: location))
							UIView.commitAnimations()
						}
					}
