使用CAKeyframeAnimation在动画期间操作UIImageView

时间:2011-08-31 14:54:58

标签: iphone uiimageview cakeyframeanimation

我需要将对象(UIImageView)从A点移动到B点,然后在B点旋转图像180度以面向相反方向并将对象从B移动到A(向后)。

我有下面的代码从A移动到B.我也知道如何旋转UIImageView。但是考虑到屏幕上有很多物体,如何知道物体何时到达B点以及如何应用旋转动作?

CAKeyframeAnimation *pathAnimation = [CAKeyframeAnimation    animationWithKeyPath:@"position"];
pathAnimation.duration = speed;
pathAnimation.calculationMode = kCAAnimationPaced;
pathAnimation.fillMode = kCAFillModeForwards;
pathAnimation.removedOnCompletion = NO; 
CGMutablePathRef pointPath = CGPathCreateMutable();
CGPathMoveToPoint(pointPath, NULL, rect.origin.x, rect.origin.y);
CGPathAddLineToPoint(pointPath, NULL, x, y);
pathAnimation.path = pointPath;
CGPathRelease(pointPath);   
[imageView.layer addAnimation:pathAnimation forKey:[NSString    stringWithFormat:@"pathAnimation%@",objId]];
[imageView release];

2 个答案:

答案 0 :(得分:1)

您可以使用CAAnimation委托方法

-(void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag

答案 1 :(得分:1)

在CAAnimation对象上设置委托,并在委托中实现animationDidStop:finished:方法。

OTOH,你描述的动画听起来像UIView的动画支持可以轻松完成。如果您的目标是4.0及更高版,请参阅Animating Views with Blocks;如果您仍然定位到早期版本,请Animating Views