3

我使用这些代码来移动 CALayer:

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

当我在没有任何动画调用的情况下更改层的位置时,会有一个默认动画。当我在 touchesMoved:withEvent: 中使用这些代码时,这将导致层的移动滞后。

我想要做的是删除默认动画,并立即移动图层,以便它可以快速响应触摸事件,就像 UIView 的“中心”属性一样。

我应该怎么办?特别感谢!

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 回答