7

UIImage画面の下部から画面の上部まで 20 秒 (約 35 ピクセル/秒) で移動するにはどうすればよいでしょうか。自分でドラッグする必要はありませんが、自動的に上部に移動する必要があります。ありがとうございました

4

2 に答える 2

19

まず、Apple Docはあなたの友達です。ここで提供するすべての情報は、これに由来します。Apple はサンプルコードもたくさん提供しているので、ぜひ見てみてください。

これを (簡単に) 実現できる方法は、UIView アニメーションを使用することです。画像に UIImageView があると仮定すると、animateWithDuration:(NSTimeInterval)duration animations:...メソッドを使用できます。

例えば:

[UIView animateWithDuration:10.0f animations:^{
    //Move the image view to 100, 100 over 10 seconds.
    imageView.frame = CGRectMake(100.0f, 100.0f, imageView.frame.size.width, imageView.frame.size.height);
}];

アニメーションにさらに多くのオプションを追加したり、完了ブロックを取得したりして、より洗練されたものにすることができます。これはすべて、「animateWithDuration」メソッドのバリエーションで実現されます。そこには UIView アニメーションに関するチュートリアルがたくさんあり、ドキュメントもたくさんあります。

ブロック (上記の ^{ ...code...} ビット) を使用したくない場合は、次のようにアニメーションを実行できます。

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:10.0f];
imageView.frame = ...
[UIView commitAnimations];
于 2012-04-08T21:09:02.540 に答える
3

私が理解している場合は、独自のオブジェクトのアニメーションを実行できます。この場合は、 beginAnimation を試してください

...
initial position

[UIView beginAnimation];
[UIView setAnimationDuration:dim/35.];
[UIView setAnimationCurve:[UIViewAnimationCurveLinear];

your animation

[UIView commitAnimations];
...

この計算でdim/35の計算を行うと、2位でアニメーションが35px / sになります

于 2012-04-08T21:11:02.627 に答える