CAMediaTimingFunction有3个{0.0f}控制点?

时间:2011-07-07 07:32:21

标签: objective-c cocoa core-animation

我正在尝试为某些NSView的alpha过渡设置动画。它需要在另一个动画中发生,特别是它的超视图(边界变化)。解释原因有点复杂,但是我需要这些alpha转换具有一个定时功能,其中alpha持续时间的前3/4(0.25秒)保持为0.0。我认为如果我用控制点0.0,0.0,0.0,1.0定义我自己的计时功能,它将达到预期的效果。显然,我一般不了解计时功能和数学。

如果有人可以提供一些建议,那就太棒了!

此致 亚历克斯

1 个答案:

答案 0 :(得分:1)

CAMediaTimingFunction使用控制点创建贝塞尔曲线。我认为,对于这项任务,更好的解决方案是使用关键帧进行不透明度动画。

CAKeyframeAnimation *animation = [CAKeyframeAnimation animation];
animation.values = [NSArray arrayWithObjects:
                    [NSNumber numberWithFloat:0.0],
                    [NSNumber numberWithFloat:1.0], nil];
animation.keyTimes = [NSArray arrayWithObjects:
                      [NSNumber numberWithFloat:0.75],
                      [NSNumber numberWithFloat:1.0], nil];

这将创建一个动画,持续时间为0到持续时间的四分之三,然后移动到1.