 
 extension SlideOutable {
     fileprivate func scrollViewDidScroll(_ scrollView: UIScrollView) {
-
+        
         guard scrollView.isDragging || scrollView.isDecelerating else { return }
-
+        
         lastActiveScroll = scrollView
-
+        
         switch interaction(scrollView: scrollView) {
         case .scroll:
             scrollView.showsVerticalScrollIndicator = true

}

extension SlideOutable {

    @objc
    func didPanScroll(_ pan: UIPanGestureRecognizer) {
        guard subscrolls.count == 0 || scroll !== pan.view else { return }

        lastActiveScroll = pan.view as? UIScrollView

        if pan.state == .began {
            header?.gestureRecognizers?.first?.stopCurrentGesture()
        }

    
    /// The delegate of `SlideOutable` object.
    open weak var delegate: SlideOutableDelegate?
    
    open func addSubscroll(_ newScroll: UIScrollView) {
        newScroll.panGestureRecognizer.addTarget(self, action: #selector(SlideOutable.didPanScroll(_:)))
        newScroll.addObserver(self, forKeyPath: #keyPath(UIScrollView.contentOffset), options: .new, context: &scrollContentContext)
        subscrolls.add(newScroll)
    }
    
    let subscrolls = NSHashTable<UIScrollView>.weakObjects()
    
    weak var lastActiveScroll: UIScrollView? {
        didSet {
            guard lastActiveScroll !== oldValue else { return }
