2011-12-19 10 views
1

私はCALayerを持っており、UIImageViewとして使用したいと考えています。UIImageViewのCALayer

CALayer *rootLayer = [CALayer layer]; 

そして、私はそのようなタイマーでそれを移動したいと思います:

Image.center=CGPointMake(Image.center.x +10, Image.center.y); 

答えて

1

このためには、私はそうここに...タイマーなどで層をそれを移動することができるでしょうその方法CABasicAnimationが必要です。タイマーの場合は、NSTimerを作成します。 performSelectorOnMainThreadメソッドの1つを使用して、タイマーがメインスレッドのメソッドを起動することを確認します。

この方法では、CABasicAnimationがレイヤーに追加されます。アニメーションが終了すると、レイヤーは元の位置に表示されますので、終了位置に注意する必要があります。

animationDidStart代理コールバックCABasicAnimationのレイヤーのモデル値を更新する必要があることを解決するには、

繰り返しアニメーション(タイマーを使用していると思われます)の場合は、removedOnCompletionフラグを使用できます。つまり、同じアニメーションを繰り返し使用することができます。それを利用する方法の詳細については、この質問をチェックアウト:

How to reuse an CABasicAnimation when not removed after completion?

+0

ので、uiimageviewにレイヤを割り当てることは不可能ですか? –

+0

画像ビューには既にレイヤーがあります。すべてのビューはCALayerによってサポートされています。 myview.layerを呼び出して、そのプロパティにアクセスします。 addAnimation –

+0

最後の少しの質問を使用してそのレイヤーにアニメーションを追加するだけで、私はあなたの答えを受け入れます:image.pngの代わりにuiimageViewのレイヤーを使用する方がパフォーマンスが良いですか? –