0

如果我有一个执行此 CAKeyframe 动画路径的对象(它只是 iphone 上部区域的椭圆形..

 UIBezierPath *trackPath = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(20, 100, 280, 150)];

现在想象一下,在这条路径旅行期间的任何时候,我想从它的当前位置在某个时间点和屏幕底部的某个点创建一条平滑的路径。

顺便说一句,我假设一旦有了路径,我就可以停止当前的 CAKeyframeAnimation 并将此路径添加到新的 CAKeyframe 动画中,但如果这不正确,您也可以在这里给我指点。

4

1 回答 1

1

所以我对自己说:“自我......看起来你将不得不自己回答这个问题,因为没有人想编辑它或说它是重复的......”

所以我希望有一些更简单或现成的方法来做到这一点。根据我的发现,没有简单的方法。似乎步骤将是;

  1. 获取动画层的当前位置
  2. 用你自己的代码计算出一条漂亮的平滑曲线
  3. 将此路径添加到动画并为其设置动画。

至于贝塞尔曲线的计算,我仍在寻找一些可以将点插入其中的类或代码,并为 UIBezier 类生成两个控制点以生成曲线。

在我的情况下,我只会将我上面质疑的形状中的“动画”设置为一个确定的点,从而准备好我准备好的平滑曲线。

在任何时候对椭圆的平滑退出进行动画处理都非常复杂,就我而言,这不值得。所以我没有这样做。

于 2013-01-31T11:49:24.713 回答