Duncan Hi. I see... mm. Ok.. then I will change it to CABasicAnimation, and I will handle the multiple call back.
> Additionally, rather than changing the anchorPoint do your animation based > on the center of the view instead of it's frame's origin (which will also > continue to work as you expect should you need to do an animation on a layer > that has a transform). So When creating the CABasicAnimation I shall place the fromValue and ToValue to be the translated values? or I should set the CATransform3d with the translated layer position? thanks for your help Gustavo On Feb 23, 2010, at 6:36 PM, David Duncan wrote: > On Feb 23, 2010, at 6:45 AM, Gustavo Pizano wrote: > >> //Create the layers of the buttons _moviesButton is one of the UIButtons >> CALayer * moviesLayer = _moviesButton.layer; >> moviesLayer.anchorPoint = CGPointMake(0.0f, 0.0f); >> CAKeyframeAnimation * animatedButonsAnimation = [CAKeyframeAnimation >> animationWithKeyPath:@"position"]; >> animatedButonsAnimation.duration = 0.4; >> animatedButonsAnimation.delegate = self; >> animatedButonsAnimation.path = moviPathRef; >> animatedButonsAnimation.timingFunction=[CAMediaTimingFunction >> functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; >> [moviesLayer addAnimation:animatedButonsAnimation >> forKey:@"animateButton"]; > > As an FYI, using a CAKeyframeAnimation to move a layer from point A to point > B is a bit of overkill. You can use a CABasicAnimation to do the same thing > by using the to/from values. If you plan to make the transit path more > complex, then a keyframe animation is perfectly fine however. If you aren't > tied to using Core Animation directly however, you can do this even more > simply using UIView's +beginAnimations:context: and +commitAnimations methods. > > Additionally, rather than changing the anchorPoint do your animation based on > the center of the view instead of it's frame's origin (which will also > continue to work as you expect should you need to do an animation on a layer > that has a transform). > >> So, right now all works as expected, but the delegate method its being >> called 5 times, once per animation, which in fact Im reusing the one I >> created for the movies Layer just with a different path and add it to a >> different button layer. >> >> I wanted then somehow to use CAAnimationGropu to store each CAKeyAnimation >> in the array argument, and somehow just start the group animation, and my >> delegate method will be called just once... is my theory right? >> >> In that case, I can't not call the [<CALayer> >> addAnimation:animatedButonsAnimation forKey:@"animateButton"]; otherwise the >> animation will fire, so to what layer should I add the CAAnimationGroup? or >> what shall I do? > > > Core Animation always copies an animation when you add it to a layer. Layers > cannot share animations, and you cannot group animations across layers. > > You will have to deal with getting called back multiple times (once per > animation). > -- > David Duncan > Apple DTS Animation and Printing > _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com