0

このように使用したタイマー機能のために、物理式を使用してある場所から別の場所へのNSTimer単純な移動を行っている場所があります。UIImageViewNSTimer

//Timer starting
timer = [NSTimer timerWithTimeInterval:0.03 target:self selector:@selector(elapse_time) userInfo:nil repeats:YES];
[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode];

elapse_timeメソッドでは、オブジェクトを次のように移動しています。

myImageView_Object.frame = //Some CGRect value

これで、配列内のすべての _Object に対して 1 つずつmyImageView必要な配列内の _Objectが増えました。どうすればこれを行うことができますか?setFramemyImageView

4

1 に答える 1

0

これまでの回答は、問題を解決しようとせずに、質問に正確に答えているだけです。

UIView を移動しています。その位置を設定します。そして、あなたはかなり高い頻度でそうしています。これを行う実際の方法は、UIView アニメーションを使用することです。ブロックを与えて、アニメーションにかかる時間を伝え、合計時間後の位置を伝えます。トゥイーンを処理し、表示します。例えば:

UIView を元の位置から新しい位置に、たとえば 3 秒で移動したいとします。

// Assume view1, view are UIView objects
view1.frame = // set initial frame
view2.frame = // set initial frame
view3.frame = // set initial frame

[UIView animateWithDuration:3.0 animations:^{
    view1.frame = // set final frame
    view2.frame = // ...
    view3.frame = == ...
}];

これには他にも使用できるバリアントがあり、ブロックを使用したアニメーションの下のUIView ドキ​​ュメントで見つけることができます。

于 2013-06-27T11:32:47.730 に答える