これはちょっと複雑ですね。 touchesMovedを実装する場合は、ドラッグが必要です。あなたがタップにもっと興味があるなら、touchesEndedはこれを実装したい場所です。いずれにしても、ビュー内の位置を取得し、その位置に基づいてUIViewの中心点を更新する必要があります。 UIViewアニメーションブロックの中央値に変更をラップすると、変更された位置にアニメートされます。
あなたはiOSの3.2以降を使用している場合は、これは非常に簡単になりたジェスチャー認識装置を使用することができます。
// In viewDidLoad or some such
UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(viewWasTapped:)];
[[self view] addGestureRecognizer:tapRecognizer];
その後、あなたのアクションセレクタを宣言:
- (void)viewWasTapped:(UITapGestureRecognizer*)recognizer
{
CGPoint location = [recognizer locationInView:[self view]];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.0f]; // take a second to animate
[viewToMove setCenter:location];
[UIView commitAnimations];
}
これはからのビューをアニメーション化しますある場所から別の場所へ。これは暗黙のアニメーションと呼ばれます。 CAKeyframeAnimationやCABasciAnimationなどのCore Animationクラスを使用すると、明示的なアニメーションになります。
MoveMeのサンプルは、私が欲しいものではありません。 MoveMeはドラッグ可能なビューを表示します。私は、ユーザーの場所にちょうど従うビューが必要です。それは本当に同じではありません。 – Rits
そして、 'touchesBegan'などのメソッドがすべて呼ばれてしまいました。問題は正しいアニメーションを設定する方法がわからないため、私が必要とする動作になります。 – Rits
MoveMeとあなたがやりたいことの違いは何ですか? –