使用 CAKeyframeAnimation 在动画期间操作 UIImageView
我需要将对象(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];
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在 CAAnimation 对象上设置委托,并在委托中实现
animationDidStop:finished:
方法。OTOH,您描述的动画听起来好像可以通过 UIView 的动画支持轻松完成。请参阅 使用块对视图进行动画处理,或者动画视图(如果您仍以早期版本为目标)。
Set a delegate on the CAAnimation object, and in the delegate implement the
animationDidStop:finished:
method.OTOH, the animation you described sounds like it could be done easily enough with UIView's animation support. See Animating Views with Blocks if you're targeting 4.0 and up, or Animating Views if you're still targeting earlier versions.
您可以使用 CAAnimation 委托方法
You can use the CAAnimation delegate method