2009-04-09 16 views
4

私は、iPhoneの画面上で簡単なアニメーションを行う小さな飛行機の画像(50x50ピクセル)の約20を使用していますUIImageViewです。アニメーションは、タイマー間隔でUIImageViewの中心プロパティをシフトすることによって行われます。タイマーが焼成したときの中心プロパティを設定するには1 NSTimerとループ20 UIImageView秒を作成します。NSTimerは高価ですか?

[NSTimer scheduledTimerWithTimeInterval:0.01 
           target:self 
           selector:@selector(timerFired:) 
           userInfo:nil 
           repeats:YES] 

のベストプラクティスは何ですか?または、UIImageViewオブジェクトごとに1つずつNSTimerを作成する必要がありますか? NSTimerリソースは高価ですか?

+0

私はUIImageViewから派生したPlaneViewオブジェクトを作成しています。タイマーは、PlaneViewをサブビューとして持つViewController内ではなく、各PlaneViewオブジェクト内で実行されます。私はまだ実験中です:-) –

答えて

4

私はそれは集中的なそのリソースだとは思いませんが、常識的には1つのタイマーを使用すると、おそらくあなたのタイマーは思われる、毎秒100回を発射するように設定されているように20

は見た目より優れていることを指示するように思われます少し過剰です。タイマーを起動するたびに各スプライトをアニメートしますか?代わりに1秒あたり20〜30回発砲したいかもしれません。

ビューアニメーションの組み込み関数も見てみるとよいでしょう。あなたがやっていることに対して、彼らがおそらく非常にうまくいくように思えます。

+0

私は、Objective-Cのオーバーヘッドが非常に高価になるかもしれないと思います。 –

+0

発射速度について:LCDは一般的に60Hzでリフレッシュされるため、実際にはそれよりも頻繁にアニメーションを再生しようとすると実際には過剰です。 –

2

Xcodeに付属している組み込みのプロファイリングツールを使用して、リソースの使用状況を測定することもできます。

関連する問題