2

2本の指を使ったフリックジェスチャでいくつかのビューを切り替えたい。誰かが私がする必要があることを教えてくれるなら、助けてください。

4

1 に答える 1

4

実際にコードを記述せずに、マルチフィンガースワイプを追跡するために必要なことは次のとおりです。

  1. まず、ビューのmultipleTouchEnabledプロパティをYESに設定して、複数のタッチを追跡できるようにします。
  2. touchesBegan、各タッチのlocationInViewプロパティを保存します(これはですCGPoint)。
  3. 受け入れる軸外モーションの量を制限する「スワイプウィンドウ」を定義し、それでもジェスチャをスワイプと見なします。たとえば、水平方向のストライプを追跡する場合、12x6の「スワイプウィンドウ」が必要になる可能性があります。つまり、タッチが水平方向に12ピクセル以上移動し、垂直方向に6ピクセル未満移動する場合は次のようになります。スワイプと見なします。
  4. touchesMovedで、タッチの現在の位置を手順2で保存された開始位置と比較します。タッチがまだ「スワイプウィンドウ」にある場合は、何もしません。片方または両方の指が「スワイプウィンドウ」の外に移動した場合は、スワイプチェックをキャンセルします。両方がスワイプの要件を満たしている場合は、マルチフィンガースワイプを検出したときに呼び出したいメソッドを実行します。
  5. 'touchesEnded'で、スワイプの追跡を停止します。タッチが終了しても、#4からスワイプメソッドを実行していない場合は、スワイプを構成していないはずです。

お役に立てれば。

于 2009-12-21T08:23:04.027 に答える