0

次のような UILongPressGestureRecognizer セットアップがあります。

UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer 割り当て]
                                          initWithTarget:self
                                          action:@selector(handleLongPress:)];
longPress.numberOfTouchesRequired = 3;
longPress.allowableMovement = 30;

私の handleLongPress セレクターでは、UIGestureRecognizerStateBegan、UIGestureRecognizerStateChanged、および UIGestureRecognizerStateEnded の 3 つの状態をチェックしています。UIGestureRecognizerStateChanged は allowableMovement プロパティに関連していますか? 指が 30 ピクセル以上移動した場合にのみその状態をトリガーしたいのですが、現状では、わずかな動きでトリガーされます。

4

1 に答える 1

0

allowableMovement は、最小ではなく最大の移動です。 アップルのドキュメント

あなたの最善の策は、動きが検出されたときに呼び出されるメソッドにチェックを入れることです。このチェックでは、動きが特定の距離未満だったときに呼び出しを破棄できます。

UILongPressGestureRecognizer は、ハンドラー メソッドが呼び出されるたびにタッチの位置を返すことができる UIGestureRecognizer を拡張します。UIGestureRecognizer クラス リファレンスを確認してください。

于 2013-01-01T23:21:15.267 に答える