Ich habe eine CollectionView und ich möchte eine Animation in der CollectionViewCell erstellen, die vom Benutzer ausgewählt wurde. Ich habe mich für animateKeyframesWithDuration entschieden, weil ich eine benutzerdefinierte Animation Schritt für Schritt erstellen möchte. Mein Code sieht wie folgt aus:iOS stopp animateWithDuration vor der Fertigstellung
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()
}
}
}
Diese innerhalb der benutzerdefinierten CollectionViewCell ausgeführt wird, wenn es ausgewählt ist. Das Problem ist, dass ich zwingen möchte, die Animation sofort an einem bestimmten Punkt zu stoppen. Aber wenn ich das mache, stoppt die Animation nicht vollständig, sondern bewegt die verbleibende Animation nur auf eine andere Zelle (wahrscheinlich die letzte wiederverwendete Zelle?)
Ich kann nicht verstehen, warum das passiert. Ich habe verschiedene Ansätze ausprobiert, aber keiner von ihnen stoppt erfolgreich die Animation, bevor normalerweise der Abschlussblock betreten wird.
Hat jemand eine Ahnung davon?
Sie eine Lösung dafür gefunden? – swalkner