     private func _autoNextPage() {
         if let currentBanner = viewControllers?.first as? BannerViewController {
             if let nextView = _nextViewController(currentBanner, isBefore: false) {
-                _pageControl.currentPage = nextView.index
-                self.setViewControllers([nextView], direction: .Forward, animated: true, completion: nil)
-            }
-        }
+                self.setViewControllers([nextView], direction: .Forward, animated: true, completion: { (finished) -> Void in
+                    self._pageControl.currentPage = nextView.index
+                })
+            }
+        }
+    }
+    
+    private func _pauseRolling() {
+        _timer?.fireDate = NSDate.distantFuture()
+    }
+    
+    private func _resumeRolling() {
+        _timer?.fireDate = NSDate(timeInterval: interval, sinceDate: NSDate())
     }
 
     // MARK: Public Function

    // MARK: UIPageViewControllerDelegate
    
    public func pageViewController(pageViewController: UIPageViewController, willTransitionToViewControllers pendingViewControllers: [UIViewController]) {
        
    }
    
    public func pageViewController(pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool) {
        if let currentBanner = pageViewController.viewControllers?.first as? BannerViewController {
            _pageControl.currentPage = currentBanner.index
        }

    }
    
    // MARK: Private Function
    
    private func _getNextIndex(currentIndex: Int, isBefore: Bool) -> Int {
        var nextIndex = -1
