             return
         }
         
-        let page = currentPagingViewPage()
-        if currentPage == page {
-            self.contentScrollView.contentOffset = scrollView.contentOffset
-        } else {
-            currentPage = page
-            menuView.moveToMenu(page: currentPage, animated: true)
-        }
-    }
-    
-    public func scrollViewWillBeginDecelerating(scrollView: UIScrollView) {
-        if !scrollView.isEqual(self.contentScrollView) {
-            return
-        }
-        
-        let nextPage = scrollView.panGestureRecognizer.translationInView(contentView).x < 0.0 ? currentPage + 1 : currentPage - 1
-        delegate?.willMoveToMenuPage?(nextPage)
+        let position = currentPagingViewPosition()
+        if currentPosition != position {
+            let newPage: Int
+            switch position {
+            case .Left: newPage = currentPage - 1
+            case .Right: newPage = currentPage + 1
+            default: newPage = currentPage
+            }
+
+            menuView.moveToMenu(page: newPage, animated: true)
+        }
     }
     
     public func scrollViewDidEndDecelerating(scrollView: UIScrollView) {

    
    // MARK: - Page calculator
    
    private func currentPagingViewPage() -> Int {
        let pageWidth = contentScrollView.frame.width
        
        return Int(floor((contentScrollView.contentOffset.x - pageWidth / 2) / pageWidth)) + 1
    }
    
    private func targetPage(#tappedPage: Int) -> Int {

        layoutContentView()
        constructPagingViewControllers()
        layoutPagingViewControllers()

        currentPosition = currentPagingViewPosition()
        currentViewController = pagingViewControllers[self.options.defaultPage]
    }
    
