5

Ho una semplice animazione che sto eseguendo nella mia vista di scorrimento metodo delegato scrollViewDidEndDragging.come aggiungere l'animazione di rimbalzo a animateWithDuration?

Ecco come si presenta:

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate { 

    NSLog(@"finger was lifted"); 

    [UIView animateWithDuration:1.0 
        animations:^{ 
         self.homeLabel.frame = self.view.frame; 
        }]; 
} 

Utilizzando questa animazione dopo aver sollevato il dito la mia homeLabel è venuta dall'alto, e voglio aggiungere che un'animazione rimbalzo per l'etichetta, così quando si tratta dall'alto , invece di atterrare senza problemi avrà un bel rimbalzo ... come posso farlo? thanksss

+0

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/index.html#//apple_ref/occ/clm/UIView/animateWithDuration:delay:usingSpringWithDamping:initialSpringVelocity:options:animations : completamento: – Desdenova

risposta

0

Una buona soluzione è creare un livello personalizzato per la vista che prevale sul metodo addAnimation:forKey: per includere una funzione di temporizzazione personalizzata.

Questo answer entra nello specifico di come farlo.

Un'altra opzione è quella di dare un'occhiata all'animazione del fotogramma chiave. Questo question and answer copre questo approccio molto bene.

15

È possibile utilizzare la funzione di animazione usingSpringWithDamping.

[UIView animateWithDuration:1.0 delay:0 usingSpringWithDamping:0.2 initialSpringVelocity:5.0 options:UIViewAnimationOptionCurveLinear animations:^{ 
    self.homeLabel.frame = self.view.frame; 
} completion:^(BOOL finished) { 

}]; 

Regolazione del Spring Damping e Initial Spring Velocity può dare l'effetto desiderato.

+1

Questa è la migliore risposta. (votato). Il metodo 'animateWithDuration: delay: usingSpringWithDamping: initialSpringVelocity: options: animations: completion:' è fatto su misura per ciò che l'OP chiede di fare. Ho scritto un programma dimostrativo su github che anima le lancette di un orologio usando esattamente questa chiamata e dà un aspetto di rimbalzo molto realistico. –

Problemi correlati