我使用这些代码来移动CALayer:
CGPoint position = self.position;
position.x += 10;
position.y += 10;
self.position = position;
当我在没有任何动画调用的情况下更改图层的位置时,会有一个默认动画。当我在touchesMoved:withEvent:中使用这些代码时,这将导致图层移动滞后。
我想要做的是删除默认动画,并立即移动图层,以便它可以快速响应触摸事件,就像UIView的“中心”属性一样。
我该怎么办?特别的thx!
答案 0 :(得分: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];
答案 1 :(得分:1)
只需设置
即可 [CATransaction setDisableActions:YES];
这将使图层移动而不会延迟