2016-03-03 2 views
0

Я пытаюсь выполнить несколько анимаций в coreplot. Для запуска первой анимации я использовал:Анимации 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];} 

Я хочу, однако, запустить несколько анимаций с помощью идентификатора. Я попытался creatingPTAnimationOperation, но не знаю, как стрелять:

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?

ответ

1

Вы можете запустить вторую анимацию так же, как и для первой. Передайте nil для стартового значения, чтобы анимация начиналась с текущего значения свойства. Методы +animate:property:… возвращают CPTAnimationOperation, поэтому вы можете установить identifier или получить ссылку, если вы захотите отменить ее раньше.

+0

Как всегда, ответы Эрика самые лучшие: D Работали как шарм. – izik461

Смежные вопросы