CAKeyFrameAnimation中keyTime的值是什么?

ope*_*rog 8 iphone core-animation cakeyframeanimation

例如,我有这个CAKeyFrameAnimation:

CALayer* theLayer = myView.layer;
    CAKeyframeAnimation* animation;
    animation = [CAKeyframeAnimation animationWithKeyPath:@"transform.rotation.z"];

    animation.duration = 1.6;
    //animation.cumulative = YES;
    animation.repeatCount = 1;
    animation.removedOnCompletion = NO;
    animation.fillMode = kCAFillModeForwards;

    animation.values = [NSArray arrayWithObjects:
                        [NSNumber numberWithFloat:0.0 * M_PI],
                        [NSNumber numberWithFloat:(15.0/180.0) * M_PI],
                        [NSNumber numberWithFloat:(30.0/180.0) * M_PI], // animation stops here...
                        [NSNumber numberWithFloat:(45.0/180.0) * M_PI], // ignored!
                        [NSNumber numberWithFloat:(190.0/180.0) * M_PI], nil]; // ignored!

    animation.keyTimes = [NSArray arrayWithObjects:
                          [NSNumber numberWithFloat:0.0],
                          [NSNumber numberWithFloat:0.2],
                          [NSNumber numberWithFloat:0.4], // ignored!
                          [NSNumber numberWithFloat:0.8], // ignored!
                          [NSNumber numberWithFloat:1.6], nil]; // ignored!

    animation.timingFunctions = [NSArray arrayWithObjects:
                                 [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear], 
                                 [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear],
                                 [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear],
                                 [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear],
                                 [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear], nil];

    [theLayer addAnimation:animation forKey:@"transform.rotation.z"];
Run Code Online (Sandbox Code Playgroud)

我没有得到的是:

A)是自动画开始以来的绝对传递时间的关键时间值?

B)关键时间值只是说这个特定关键帧需要多少时间?

Rob*_*ier 13

这里的文档有点奇怪,但是准确无误:

数组中的每个值都是介于0.0和1.0之间的浮点数,并且对应于values数组中的一个元素.keyTimes数组中的每个元素将相应关键帧值的持续时间定义为动画总持续时间的一部分.每个元素值必须大于或等于先前的值.

基本上,每个值指示动画中给定关键帧出现的归一化点.因此,如果关键帧占动画的25%,则值为0.25.文档中令人困惑的部分是它们表明它是一个持续时间,而实际上它是一个标准化的时间点.