带标识符的 Coreplot 动画

Coreplot animations with identifier

我正在尝试在 coreplot 中执行多个动画。 运行 我使用的第一个动画:

 [CPTAnimation animate:plotSpace
                 property:@"xRange"
            fromPlotRange:oldXrange
              toPlotRange:newxRange
                 duration:1.0
                withDelay:0
           animationCurve:CPTAnimationCurveCubicInOut
                 delegate:self];

并实施 CPTAnimationDelegate:

-(void)animationDidFinish:(nonnull CPTAnimationOperation *)operation {
    CPTPlotRange *newxRange = [CPTPlotRange
                               plotRangeWithLocation:@500
                               length:@100];

    [self performSecondAnimationWithnewXRange:newXrange];}

但是,我想要 运行 使用标识符的多个动画。我试过创建 PTAnimationOperation,但不知道如何启动它:

CPTAnimationOperation* animation1 = [[CPTAnimationOperation alloc] init];
CPTAnimationPeriod *period = [CPTAnimationPeriod periodWithStartPlotRange:plotSpace.xRange
                                                                         endPlotRange:newxRange
                                                                             duration:3.0
                                                                            withDelay:0.0];
animation1.identifier = @"animation1ID";
animation1.period = period;

我如何实际启动动画,以便在委托中检查它的 ID?

您可以像启动第一个动画一样启动第二个动画。为起始值传递 nil 以使动画从 属性 的当前值开始。 +animate:property:… 方法全部 return 和 CPTAnimationOperation 所以你可以设置 identifier 或者有一个参考如果你可能想提前取消它。