Ich habe eine Reihe verschachtelter UIView
-Animationen (2 oder 3 Ebenen tief zu einer bestimmten Zeit), die ich gerne pausieren und fortsetzen könnte. Einige dieser Animationen verwenden -animateWithDuration:animations:completion:
, während andere -animateWithDuration:delay:options:animations:completion:
verwenden, um die Ausführung des Animationsblocks zu verzögern.
Ich habe Technisches Q & amp; A QA1673 gelesen und implementiert, um alle Animationen anzuhalten eine Ebenenstruktur, aber ich habe ein Problem mit den Animationen, die einen Verzögerungsparameter verwenden. Ich kann Animationen zwar pausieren und fortsetzen, aber wenn die Animation fortgesetzt wird, scheint jeder Verzögerungsblock, um den es eine Verzögerung gibt, um die Zeit verlängert zu werden, um die der Ebenenbaum pausiert wurde. Wenn zum Beispiel einer der Blöcke eine Verzögerung von 1 Sekunde hat und der Ebenenbaum für 3 Sekunden pausiert wurde, verzögert sich die Animation nach dem Fortsetzen für 4 Sekunden. Ich vermute, das hat etwas mit der Eigenschaft beginTime
zu tun? Jede Hilfe wäre willkommen.
Ich schlage einen anderen Ansatz vor.
Animationsblöcke sind einfach zu implementieren, aber nur nützlich, wenn Sie keine Kontrolle über Ihre Animation benötigen.
Andernfalls sollten Sie einen Timer verwenden und Ihre eigene Animation manuell erstellen.
%Vor% isPaused
ist ein Flag, das den Animationszustand steuert.
Tags und Links objective-c ios core-animation uiview