iOS:识别捏手势但不识别两个手指盘?

问题描述:

目标是只让双手平底锅没有在进行中捏手势得到承认。iOS:识别捏手势但不识别两个手指盘?

此代码允许pinchGesture和双指panGestures,但它们同时发生。这是基于this answer使用gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer: UIGestureRecognizer)函数。

// Handle two-finger pans 
    let twoFingerPanRecognizer = UIPanGestureRecognizer(target: self, action: #selector(sceneViewPannedTwoFingers)) 
    twoFingerPanRecognizer.minimumNumberOfTouches = 2 
    twoFingerPanRecognizer.maximumNumberOfTouches = 2 
    twoFingerPanRecognizer.delegate = self 
    sceneView.addGestureRecognizer(twoFingerPanRecognizer) 

    // Handle pinches 
    let pinchGesture = UIPinchGestureRecognizer(target: self, action: #selector(sceneViewPinched)) 
    pinchGesture.delegate = self 
    sceneView.addGestureRecognizer(pinchGesture) 

    func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer: UIGestureRecognizer) -> Bool { 
     if gestureRecognizer is UIPinchGestureRecognizer { 
      return false 
     } else { 
      return true 
     } 
    } 

这段代码允许两个手指盘,但是手指根本不工作。

// Handle two-finger pans 
    let twoFingerPanRecognizer = UIPanGestureRecognizer(target: self, action: #selector(sceneViewPannedTwoFingers)) 
    twoFingerPanRecognizer.minimumNumberOfTouches = 2 
    twoFingerPanRecognizer.maximumNumberOfTouches = 2 
    twoFingerPanRecognizer.delegate = self 
    sceneView.addGestureRecognizer(twoFingerPanRecognizer) 

    // Handle taps 
    let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(sceneViewTapped)) 
    sceneView.addGestureRecognizer(tapRecognizer) 

    // Handle pinches 
    let pinchGesture = UIPinchGestureRecognizer(target: self, action: #selector(sceneViewPinched)) 
    pinchGesture.delegate = self 
    pinchGesture.requireGestureRecognizerToFail(twoFingerPanRecognizer) 
    sceneView.addGestureRecognizer(pinchGesture) 

    func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer: UIGestureRecognizer) -> Bool { 
     return true 
    } 
+0

你想只设定一个缩放手势识别? – user3182143

+0

@ user3182143当然。谢谢! – Crashalot

+0

你想一次只执行一个手势?捏或平底锅? –

你有没有尝试这样

func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool { 
    if ((gestureRecognizer is UIPinchGestureRecognizer || gestureRecognizer is UIPanGestureRecognizer) 
     && (otherGestureRecognizer is UIPinchGestureRecognizer || otherGestureRecognizer is UIPanGestureRecognizer)) { 
     return false 
    } 
    return true 
} 
+0

不起作用。两指平底锅工作,但捏根本不工作。 – Crashalot

+0

你是否删除了这行'requireGestureRecognizerToFail',请在删除该行后尝试我的答案。 –

+0

好的将尝试 – Crashalot