Search code examples
iosobjective-ccocoa-touchcore-animationcalayer

How do you move a CALayer instantly (without animation)


I'm trying to drag a CALayer in an iOS app.

As soon as I change its position property it tries to animate to the new position and flickers all over the place:

 layer.position = CGPointMake(x, y)

How can I move CALayers instantly? I can't seem to get my head around the Core Animation API.


Solution

  • You want to wrap your call in the following:

    [CATransaction begin]; 
    [CATransaction setValue: (id) kCFBooleanTrue forKey: kCATransactionDisableActions];
    layer.position = CGPointMake(x, y);
    [CATransaction commit];