我需要将对象(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];
答案 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。