OpenGLESで描画されたマップがあり、マップをパンするためにmaximumNumberofTouchesが1に設定されているパンジェスチャレコグナイザーと、ズームするためのピンチジェスチャレコグナイザーがあります。ズームが完了したら(1本の指を画面から離して)パンを開始したいのですが、画面上に指がないことを検出したピンチジェスチャ認識機能が実行されるまで、パンジェスチャ認識機能が起動しません。何か案は?
1 に答える
1
デリゲートメソッドを使用して、両方のジェスチャをアクティブにすることができる場合があります。
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
// The two recognizers using the delegate (scale and rotate) should both be active.
//
return YES;
}
また、ユーザーがズームしているかどうかを追跡するBOOLを維持し、そのBOOLがYESのときにパンジェスチャのコードを実行できないようにします。touchesMoved:withEventメソッド(またはおそらく他のUIGestureRegonizerメソッド)のタッチ数をチェックしてBOOL値を変更します。
これはうまくいくはずだと思います。スケーリング、回転、ドラッグを許可するアプリで同様のことを行います。ドラッグは、ユーザーがスケーリング/回転していない場合にのみ許可されます。
〜幸運
于 2012-01-04T03:23:37.913 に答える