I guess I have to convert the CGRect into an object to pass it to fromValue?
This is how I try it, but it doesn’t work:
CABasicAnimation *frameAnimation = [CABasicAnimation animationWithKeyPath:@"frame"];
frameAnimation.duration = 2.5;
frameAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
frameAnimation.fromValue = [NSValue valueWithCGRect:myLayer.frame];
frameAnimation.toValue = [NSValue valueWithCGRect:theNewFrameRect];
[myLayer addAnimation:frameAnimation forKey:@"MLC"];
I guess you need to change your last line to make it work:
You may also set an action to the layer to make all frame changes animated with your animation:
In CALayer’s
actionForKey:method reference you can find how layer looks up for the actions to animated its properties.