2013-04-07 3 views
0

У меня есть приложение, которое в настоящее время дважды поворачивает кнопку (изображение) при нажатии. Я хочу, чтобы цикл, масштабируя кнопку, а также встряхивая кнопку. Таким образом, три анимации будут: масштабировать, переводить, вращать. Как я могу циклически перемещаться по ним? Вот что я в настоящее время для кнопки:циклически перемещаться по анимации на кнопке

- (IBAction)playAudioAction:(id)sender { 
    UIButton *btn=(UIButton *)sender; 

    CABasicAnimation *fullRotation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"]; 
    fullRotation.fromValue = [NSNumber numberWithFloat:0]; 
    fullRotation.toValue = [NSNumber numberWithFloat:((360*M_PI)/180)]; 
    fullRotation.duration = 0.5; 
    fullRotation.repeatCount = 2; 
    [btn.layer addAnimation:fullRotation forKey:@"360"]; 

    [self playAudioOfType:btn.tag]; 

} 

ответ

1

Если вы хотите применить случайную анимацию кнопки вы можете иметь массив CABasicAnimation с и случайным образом выбрать один из них.

Где-то инициализируйте и настройте анимацию и добавьте их в массив (я бы сделал это свойство).

CABasicAnimation * fullRotation = ... 
CABasicAnimation * scale = ... 
CABasicAnimation * translate = ... 
self.animations = @[ fullRotation, scale, translate ]; 

Затем, когда вы произвольно выбираете один, удалите все предыдущие и добавьте новый.

- (IBAction)playAudioAction:(id)sender { 
    UIButton *btn=(UIButton *)sender; 

    NSInteger randomIndex = arc4random_uniform(self.animations.count); 
    CABasicAnimation *randomAnimation = self.animations[randomIndex]; 
    [btn.layer removeAllAnimations]; 
    [btn.layer addAnimation:randomAnimation forKey:@"animation"]; 

    [self playAudioOfType:btn.tag]; 

}