     
     func handleScrollEnd(scrollView: UIScrollView) {
         if self.swipeDirection == .Right {
-            scrollView.scrollRectToVisible(CGRectMake(0, 0, scrollView.frame.size.width, scrollView.frame.size.height), animated: true)
-            self.delegate?.didCellClose(self.tag)
+            UIView.animateWithDuration(0.5, animations: { () -> Void in
+                scrollView.scrollRectToVisible(CGRectMake(0, 0, scrollView.frame.size.width, scrollView.frame.size.height), animated: true)
+            }, completion: { (complete) -> Void in
+                self.delegate?.didCellClose(self.tag)
+                println()
+            })
         } else {
-            scrollView.scrollRectToVisible(CGRectMake(self.frame.size.width, 0, scrollView.frame.size.width, scrollView.frame.size.height), animated: true)
-            self.delegate?.didCellOpen(self.tag)
-        }
-    }
-    
-    func moveButtonsInHierarchy(hide: Bool) {
+            UIView.animateWithDuration(0.5, animations: { () -> Void in
+                scrollView.scrollRectToVisible(CGRectMake(self.frame.size.width, 0, scrollView.frame.size.width, scrollView.frame.size.height), animated: false)
+            }, completion: { (complete) -> Void in
+                self.delegate?.didCellOpen(self.tag)
+                self.moveButtonsInHierarchy(shouldHide: false)
+            })
+        }
+    }
+    
+    func moveButtonsInHierarchy(#shouldHide: Bool) {
         for index in 0...3 {
             if let view = self.viewWithTag(70 + index) as? T2GCellButton {
-                if hide {
+                if shouldHide {
                     self.sendSubviewToBack(view)
                 } else {
                     self.bringSubviewToFront(view)

    
    func changeFrameParadigm(mode: T2GLayoutMode, frame: CGRect) {
        if self.scrollView!.contentOffset.x != 0 {
            self.moveButtonsInHierarchy(true)
            self.scrollView!.contentOffset.x = 0
        }
        

    func scrollViewWillBeginDragging(scrollView: UIScrollView) {
        self.delegate?.cellStartedSwiping(self.tag)
        
        self.moveButtonsInHierarchy(shouldHide: true)
    }
    
    func scrollViewDidEndDragging(scrollView: UIScrollView, willDecelerate decelerate: Bool) {
        if !decelerate {
            /*
            if scrollView.contentOffset.x != 0 {
                self.moveButtonsInHierarchy(false)
            }
            */
            self.handleScrollEnd(scrollView)
        }
    }
