import UIKit

private class GridNodeScrollerLayer: CALayer {
    override func setNeedsDisplay() {
    }
}

private class GridNodeScrollerView: UIScrollView {
    override class var layerClass: AnyClass {
        return GridNodeScrollerLayer.self
    }
    
    override func touchesShouldCancel(in view: UIView) -> Bool {
        return true
    }
    
    @objc func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
        return false
    }
}

open class GridNodeScroller: ASDisplayNode, UIGestureRecognizerDelegate {
    var scrollView: UIScrollView {
        return self.view as! UIScrollView
    }
    
    override init() {
        super.init(viewBlock: {
            return GridNodeScrollerView()
        }, didLoad: nil)
        
        self.scrollView.scrollsToTop = false
    }
    
    required public init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}