如何使用 CABasicAnimation 从一个点移动到另一个点?

Posted

技术标签:

【中文标题】如何使用 CABasicAnimation 从一个点移动到另一个点?【英文标题】:How to use CABasicAnimation to move from point to another point? 【发布时间】:2012-02-10 07:06:31 【问题描述】:

我正在使用CABasicAnimation 在我的应用程序中从一个点到另一个点执行动画移动对象,但是在动画完成移动到目标点后,它始终显示在起点。如何防止动画结束后在起点不显示?

提前致谢,

【问题讨论】:

【参考方案1】:

您似乎忘记为您的对象设置实际的终点值。使用CABasicAnimation,您可以添加动画相应地设置属性。

【讨论】:

这是我的代码:CABasicAnimation *translateAnim = [CABasicAnimation animationWithKeyPath:@"transform.translation.y"]; translateAnim.duration = 1.0; translateAnim.fromValue = [NSNumber numberWithFloat:0.0f]; translateAnim.toValue = [NSNumber numberWithFloat:-100.f]; [layer addAnimation:translateAnim forKey:@"move"];【参考方案2】:

试试这个

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0];
CGRect frame=objectName.frame;
frame.origin.x=frame.origin.x-20;//change the point according to you
frame.origin.y=frame.origin.y-20;//change the point according to you
objectName.frame=frame;
[UIView commitAnimations];

【讨论】:

这段代码运行良好,但我实际上想使用 Core Animation 来执行复杂的动画。例如,在用户定义的路径上移动对象。 这样你就必须在动画结束后改变对象的位置,这样每当你的动画完成时,你的对象就会保持在目标点

以上是关于如何使用 CABasicAnimation 从一个点移动到另一个点?的主要内容,如果未能解决你的问题,请参考以下文章

如何在动画 CABasicAnimation 时改变速度

如何使用 CABasicAnimation 更改 Frame.size

如何使用 CABasicAnimation 水平移动球并将球停在正确的位置

如何在动画CABasicAnimation时改变速度

当 CABasicAnimation 正在制作动画时,我该如何回调?

如何正确设置 CABasicAnimation(开始)时间?