 		}
 	}
     
-    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
+    fileprivate func getDragginViewsNewYCenter(_ draggingView: UIView, with location: CGPoint) -> CGFloat {
+        let cellCenter = draggingView.frame.height / 2
+        let bottomBound = contentSize.height - cellCenter
+        
+        if location.y < cellCenter {
+            return cellCenter
+        } else if location.y > bottomBound {
+            return bottomBound
         }
-        return true
+        return location.y
     }
 	
 }

						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()
						}
					}
