From 5c0f812f0c8638a89540d5d7e08f14e460244bf0 Mon Sep 17 00:00:00 2001 From: Alisa Mylnikova Date: Mon, 20 Apr 2020 14:18:16 +0700 Subject: [PATCH] Fix for liquid swipe --- Source/views/MacawView.swift | 42 ++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 23 deletions(-) diff --git a/Source/views/MacawView.swift b/Source/views/MacawView.swift index a28b57f8..582db76a 100644 --- a/Source/views/MacawView.swift +++ b/Source/views/MacawView.swift @@ -11,7 +11,7 @@ import AppKit /// You could create your own view extended from MacawView with predefined scene. /// -open class MacawView: MView { +open class MacawView: MView, MGestureRecognizerDelegate { internal var drawingView = DrawingView() @@ -80,6 +80,7 @@ open class MacawView: MView { self.renderer = RenderUtils.createNodeRenderer(node, view: drawingView) zoom.initialize(view: self, onChange: onZoomChange) + initializeView() } public convenience init(node: Node, frame: CGRect) { @@ -93,6 +94,7 @@ open class MacawView: MView { super.init(frame: frame) zoom.initialize(view: self, onChange: onZoomChange) + initializeView() } private func onZoomChange(t: Transform) { @@ -101,12 +103,6 @@ open class MacawView: MView { } } - open override func didMoveToSuperview() { - super.didMoveToSuperview() - - initializeView() - } - open override func layoutSubviews() { super.layoutSubviews() @@ -136,11 +132,11 @@ open class MacawView: MView { let rotationRecognizer = MRotationGestureRecognizer(target: drawingView, action: #selector(DrawingView.handleRotation)) let pinchRecognizer = MPinchGestureRecognizer(target: drawingView, action: #selector(DrawingView.handlePinch)) - tapRecognizer.delegate = drawingView - longTapRecognizer.delegate = drawingView - panRecognizer.delegate = drawingView - rotationRecognizer.delegate = drawingView - pinchRecognizer.delegate = drawingView + tapRecognizer.delegate = self + longTapRecognizer.delegate = self + panRecognizer.delegate = self + rotationRecognizer.delegate = self + pinchRecognizer.delegate = self tapRecognizer.cancelsTouchesInView = false longTapRecognizer.cancelsTouchesInView = false @@ -191,9 +187,19 @@ open class MacawView: MView { return MTouchEvent(x: Double(location.x), y: Double(location.y), id: id) } } + + // MARK: - MGestureRecognizerDelegate + + public func gestureRecognizer(_ gestureRecognizer: MGestureRecognizer, shouldReceive touch: MTouch) -> Bool { + return true + } + + public func gestureRecognizer(_ gestureRecognizer: MGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: MGestureRecognizer) -> Bool { + return true + } } -internal class DrawingView: MView, MGestureRecognizerDelegate { +internal class DrawingView: MView { /// Scene root node open var node: Node = Group() { @@ -659,16 +665,6 @@ internal class DrawingView: MView, MGestureRecognizerDelegate { recognizersMap.removeValue(forKey: recognizer) } } - - // MARK: - MGestureRecognizerDelegate - - public func gestureRecognizer(_ gestureRecognizer: MGestureRecognizer, shouldReceive touch: MTouch) -> Bool { - return true - } - - public func gestureRecognizer(_ gestureRecognizer: MGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: MGestureRecognizer) -> Bool { - return true - } } class LayoutHelper {