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

Spa*_*ies 17 uigesturerecognizer swift

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

func gestureRecognizer(UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer: UIGestureRecognizer) -> Bool {
    return true
}
Run Code Online (Sandbox Code Playgroud)

Ban*_*ngs 44

确保你的类实现 UIGestureRecognizerDelegate

class YourViewController: UIViewController, UIGestureRecognizerDelegate ...
Run Code Online (Sandbox Code Playgroud)

将手势设置delegateself

yourGesture.delegate = self
Run Code Online (Sandbox Code Playgroud)

将代理功能添加到您的班级

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

  • 别忘了让自己成为UIGestureRecognizerDelegate (8认同)
  • 并且不要忘记设置yourGesture.delegate = self (7认同)