3

これらのコードを使用してCALayerを移動します。

CGPoint position = self.position;
position.x += 10;
position.y += 10;
self.position = position;

アニメーションを呼び出さずにレイヤーの位置を変更すると、デフォルトのアニメーションが表示されます。これにより、touchesMoved:withEvent:でこれらのコードを使用すると、レイヤーの移動に遅れが生じます。

私がやりたいのは、デフォルトのアニメーションを削除し、レイヤーをすぐに移動して、UIViewの「center」プロパティと同じように、タッチイベントにすばやく応答できるようにすることです。

私は何をすべきか?特別なTHX!

4

2 に答える 2

9

他のポスターは正しい考えを持っていましたが、十分な情報を提供していませんでした。

アニメーションなしでレイヤーのプロパティを即座に変更したい場合は、アクションを無効にするCATransaction内にそれらの変更を配置する必要があります。

[CATransaction begin];
//[CATransaction setAnimationDuration: 1.0/30.0];
[CATransaction setDisableActions: TRUE];
//Put layer changes you want to take place without animation here.
[CATransaction commit];
于 2012-06-01T14:24:14.387 に答える
1

設定するだけ

 [CATransaction setDisableActions:YES];

これにより、レイヤーが遅れることなく移動します

于 2012-06-01T07:06:11.497 に答える