2011-12-24 6 views
0

したがって、私はCGPointMakeを使って画面に固定された単純なボール(基本的にはUIImageViewのオブジェクト)を試しています。UIGestureRecognizerDelegateで簡単なスワイプジェスチャーを実装しています。画面上のオブジェクトを移動する方向と速度でスワイプジェスチャーを実行しますか?

私の意図はちょうど方向にボールをフリックすることです、そして、私はボールがその方向に動くよう望みます(完全に滑らかでなければならないことを意味します)。そしてそれはボールの方向とスピードに依存します。スワイプ。

私はとUIPanGestureRecognizerと一緒に作業し、スワイプの速度を見つけてCGPointMakeで再びボールを固定できることを理解できます。

しかし、実際の滑らかな動きを特定の速度と方向で得るには本当に良い方法がありますか?

+0

AFAIK UIPanGestureRecognizerは、スワイプ1が完了したときにプリセットセレクタを呼び出すための方法です。そのため、パンジェスチャだけで、画面に触れている間に実際にボールを指の動きに追従させることができます。 – Till

+0

スワイプが開始された後にボールが軌道をたどるようにしたい...スワイプの1秒後にすることができます。 「UIPanGestureRecognizer」は実際にスワイプと共にボールを動かします。 – Legolas

答えて

1

もし私があなただったら、通常のtouchesBegan:withEvent:すべてのUIViewが実装するメソッドを試してみましょう。次に、タッチが終了するまで常に新しいフレームを設定できます。その後、方向と速度を計算してアニメーションを使用して移動を続けることができます。

+0

と私はGestureRecognizerの同じメソッドを上書きしますが、このメソッドもあります。新しいビューにサブクラス化せずに、任意のビューにレコグナイザを割り当てることができます。 – vikingosegundo

+0

方向、はい、私はそれを計算するためにいくつかの数学を使用することができます。 'touchesBegan'と' touchesEnd'で速度をどのように計算できますか? – Legolas

+0

touchesMoved:のタッチの座標と呼び出し間の時間を使ってベロシティを計算することができます。 – lbrndnr

関連する問題