web-dev-qa-db-ja.com

特定のジェスチャーの同時ジェスチャー認識

ジェスチャーの同時認識を有効にしようとしていますが、UIPinchGestureRecognizerUIRotationGestureRecognizerジェスチャーのみです。他のジェスチャーでは機能しません。次のプロパティをtrueに設定すると、すべてのジェスチャーを同時に認識できますが、回転とスケーリングだけに制限するにはどうすればよいですか?

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

クラスがUIGestureRecognizerDelegateを実装していることを確認してください

class YourViewController: UIViewController, UIGestureRecognizerDelegate ...

ジェスチャーのdelegateselfに設定します

yourGesture.delegate = self

クラスにデリゲート関数を追加する

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