2012-01-27 2 views
0

Как я могу продолжить анимацию преобразования UIImageView transform.translation.x после завершения процесса toValue. Например: при нажатии кнопки # 1: от 1 до 55 нажмите кнопку # 2 от 55 до 110. ... и если он находится в позиции кнопки №2, и вы нажимаете кнопку # 5, то от 55 * 2 до 55 * 5.CABasicAnimation Продолжить с fromValue

- (void)animateArrow{ 
CABasicAnimation *theAnimation; 


theAnimation=[CABasicAnimation animationWithKeyPath:@"transform.translation.x"]; 
theAnimation.duration=0.4; 
theAnimation.repeatCount=1; 
theAnimation.toValue=[NSNumber numberWithFloat:50]; 

[buttonArrow.layer setValue:theAnimation.toValue forKey:theAnimation.keyPath]; 
[buttonArrow.layer addAnimation:theAnimation forKey:@"transform.translation.x"]; 

}

ответ

1

Вы должны думать о предоставлении нескольких точек вдоль путь анимации в массиве, как это:

CAKeyframeAnimation *downMoveAnimation; 
downMoveAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform.translation.y"]; 
downMoveAnimation.duration = 12; 
downMoveAnimation.repeatCount = 1; 
downMoveAnimation.values = [NSArray arrayWithObjects:   
          [NSNumber numberWithFloat:20], 
          [NSNumber numberWithFloat:220], 
          [NSNumber numberWithFloat:290], nil]; 
downMoveAnimation.keyTimes = [NSArray arrayWithObjects:  
           [NSNumber numberWithFloat:0], 
           [NSNumber numberWithFloat:0.5], 
           [NSNumber numberWithFloat:1.0], nil]; 

downMoveAnimation.timingFunctions = [NSArray arrayWithObjects: 
             [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn],  // from keyframe 1 to keyframe 2 
             [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut], nil]; // from keyframe 2 to keyframe 3 

downMoveAnimation.removedOnCompletion = NO; 
downMoveAnimation.fillMode = kCAFillModeForwards; 

Надеется, что это работает.

Основное отличие базовой анимации от анимации ключевого кадра заключается в том, что ключевой кадр позволяет указать несколько точек вдоль пути.

+0

Спасибо, помощник. Работает как шарм .. :) –

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