1

可能重复:
如何为视图或图像沿弯曲路径的移动设置动画?

我有一个 iOS 应用程序,我想为一片落叶(或几片)制作动画。我有我的叶子图像,ImageView我从文档中找到了一个简单的动画:

[UIView animateWithDuration:4.0f
                          delay:0
                          options:UIViewAnimationTransitionFlipFromLeft
                          animations:^(void)
                          {
                              leaf1ImageView.frame = CGRectMake(320, 480, leaf1ImageView.frame.size.width,leaf1ImageView.frame.size.height);
                          }
                          completion:NULL];

这将使叶子从其起始位置直线移动到右下角。我将如何对其进行动画处理以遵循抛物线或正弦曲线等路径或曲线,甚至可能旋转图像或视图?这会在动画块中完成吗?提前致谢!

4

2 回答 2

10

You can do this with a CAKeyframeAnimation and a CGPath. The code looks something like this:

CAKeyframeAnimation *leafAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
leafAnimation.duration = 10.0;
leafAnimation.path = /* your CGPathRef */;
[leaf1ImageView.layer addAnimation:leafAnimation forKey:@"leafAnimation"];
于 2012-09-01T22:01:43.110 回答
1

您正在寻找的东西是沿着 Bezier CGPath 制作动画。有关更多详细信息,请参阅此问题:

如何为视图或图像沿弯曲路径的移动设置动画?

不过,在代码中创建贝塞尔路径相当困难,为了更简单的方法来创建贝塞尔曲线以沿此处查看问题的答案进行动画处理:

在 iOS 中用手指绘制贝塞尔曲线?

于 2012-09-01T22:07:04.367 回答