针对特定手势的同时手势识别

Simultaneous gesture recognition for specific gestures

我正在尝试启用同步手势识别,但仅限于 UIPinchGestureRecognizerUIRotationGestureRecognizer 手势。我不希望它适用于任何其他手势。如果我将以下 属性 设置为 true 它允许同时识别所有手势,我怎样才能将其限制为仅旋转和缩放?

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

确保您的 class 实施 UIGestureRecognizerDelegate

class YourViewController: UIViewController, UIGestureRecognizerDelegate ...

将手势的 delegate 设置为 self

yourGesture.delegate = self

将委托功能添加到您的 class

func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
    if (gestureRecognizer is UIPanGestureRecognizer || gestureRecognizer is UIRotationGestureRecognizer) {
        return true
    } else {
        return false
    }
}

任意 2 美分 swift 5.1

// 假设你需要更喜欢捏而不是平移:

//UIGestureRecognizerDelegate
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith shouldRecognizeSimultaneouslyWithGestureRecognizer: UIGestureRecognizer) -> Bool {

        if gestureRecognizer is UIPinchGestureRecognizer {
            return true
        }
        return false
    }