2015-05-06 4 views
3

Я пытаюсь добавить эффект отскока к анимации ниже. Вот мой код:Как добавить эффект отскока к UIView animateWithDuration

[UIView animateWithDuration:1.0 
         delay:.0 
     usingSpringWithDamping:0.5 
     initialSpringVelocity:2.0 
        options:UIViewAnimationOptionCurveEaseOut 
        animations:^{ 
         // Coming from a value of CGAffineTransformMakeScale(0.001, 1.0) 
         self.myView.transform = CGAffineTransformMakeScale(1.0, 1.0); 
        }completion:nil 
      ]; 

Он работает неправильно. Он становится шире в конце анимации, тогда он возвращается к норме. Я хочу, чтобы ширина отскакивала до меньшего значения, чем 1,0, не более 1,0.

+0

принять ответ также plz –

+0

Это не анимация отскока, которую я ищу. – Eric

+0

Анимация работает так, как предполагается. Это просто не то, что вы хотите **. Вам нужно добавить простой блок «animateWithDuration:» в блоке завершения текущего кода. ** Или **, как указал муку, используйте 'UIDynamicAnimator'. – n00bProgrammer

ответ

6

усть для дальнейшего повторного использования кода и кода по поддержанию чистого

popUp.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.001, 0.001); 

[self.view addSubview:popUp]; 

[UIView animateWithDuration:0.3/1.5 animations:^{ 
    popUp.transform = CGAffineTransformScale(CGAffineTransformIdentity, 1.1, 1.1); 
} completion:^(BOOL finished) { 
    [UIView animateWithDuration:0.3/2 animations:^{ 
     popUp.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.9, 0.9); 
    } completion:^(BOOL finished) { 
     [UIView animateWithDuration:0.3/2 animations:^{ 
      popUp.transform = CGAffineTransformIdentity;        
     }]; 
    }]; 
}]; 
Смежные вопросы