Ho un oggetto CollectionView e voglio creare un'animazione all'interno del CollectionViewCell selezionato dall'utente. Ho scelto di utilizzare animateKeyframesWithDuration perché voglio creare un'animazione personalizzata passo dopo passo. Il mio codice è simile al seguente:iOS stop animateWithDuration prima del completamento
func animate() {
UIView.animateKeyframesWithDuration(1.0, delay: 0.0, options: .AllowUserInteraction, animations: {() -> Void in
UIView.addKeyframeWithRelativeStartTime(0.0, relativeDuration: 0.5, animations: {() -> Void in
// First step
})
UIView.addKeyframeWithRelativeStartTime(0.5, relativeDuration: 0.5, animations: {() -> Void in
// Second step
})
}) { (finished: Bool) -> Void in
if self.shouldStopAnimating {
self.loadingView.layer.removeAllAnimations()
} else {
self.animate()
}
}
}
Questo viene eseguito all'interno del CollectionViewCell personalizzato quando viene selezionato. Il problema è che voglio forzare l'arresto dell'animazione immediatamente ad un certo punto. Ma quando lo faccio, l'animazione non si ferma completamente, sposta semplicemente l'animazione rimanente su una cella diversa (probabilmente l'ultima cella riutilizzata?)
Non riesco a capire perché questo sta accadendo. Ho provato approcci diversi ma nessuno di essi ha fermato l'animazione prima di entrare normalmente nel blocco di completamento
Qualcuno ha qualche idea al riguardo?
hai trovato una soluzione per questo? – swalkner