Testen Sie, ob sich eine UIView in der Mitte der Animation befindet
Gibt es eine Möglichkeit zu sagen, wenn ein UIView ist in der Mitte eine animation? Wenn ich drucken Sie das view-Objekt, während es in Bewegung ist, merke ich, dass es ein "Animationen" - Eintrag:
search bar should end editing: <UISearchBar: 0x2e6240; frame = (0 0; 320 88); text = ''; autoresize = W+BM; animations = { position=<CABasicAnimation: 0x6a69c40>; bounds=<CABasicAnimation: 0x6a6d4d0>; }; layer = <CALayer: 0x2e6e00>>
Wenn die animation gestoppt hat und ich Druck die Ansicht, die "Animationen" - Eintrag ist jetzt Weg:
search bar should end editing: <UISearchBar: 0x2e6240; frame = (0 0; 320 88); text = ''; autoresize = W+BM; layer = <CALayer: 0x2e6e00>>
InformationsquelleAutor der Frage prostock | 2011-04-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen UIView hat eine Schicht (CALayer). Sie können senden animationKeys, es wird Ihnen eine Reihe von Tasten, welche den Animationen angebracht, um die Ebene. Ich nehme an, dass, wenn es irgendwelche Einträge, die animation(en) ausgeführt werden. Wenn Sie möchten, zu Graben, noch tiefer haben Sie einen Blick auf die CAMediaTiming Protokoll die CALayer nimmt. Es hat einige weitere Informationen über die aktuelle animation.
InformationsquelleAutor der Antwort Nick Weaver
Animationen befestigt sind, in der Tat, um die zugrunde liegenden Core-Animation
CALayer
KlasseSo, ich denke, man kann nur überprüfen
myView.layer.animationKeys
InformationsquelleAutor der Antwort Vincent Guerci
Ich bin nicht sicher, dass der Kontext der Frage, aber ich musste versuchen heraus zu finden, ob eine Aussicht war animierend, bevor eine zweite animation zu vermeiden, überspringen. Es gibt jedoch einen UIView animation option
UIViewAnimationOptionBeginFromCurrentState
kombiniert werden die Animationen, wenn notwendig, ein glattes Aussehen zu geben. Wodurch mein Bedürfnis, zu wissen, ob die Ansicht animiert.InformationsquelleAutor der Antwort Ryan Poolos
Gibt es ein Problem mit der animationKeys trick.
Manchmal kann es ein paar animationKeys Verweilen nach einer animation abgeschlossen ist.
Dies bedeutet, dass ein nicht-animieren Ebene zurückkehren konnte, eine Reihe von animationKeys, auch wenn es nicht wirklich animierend.
Können Sie sicherstellen, dass animationKeys automatisch entfernt werden, indem eine animation removedOnCompletion-Eigenschaft auf JA.
z.B.
Wenn Sie dies tun, für alle Animationen, die Sie anwenden, um Ihre Ebene, es wird sichergestellt, dass, wenn die Schicht nicht zu animieren, gibt es keine animationKeys vorhanden.
InformationsquelleAutor der Antwort C4 - Travis
Einige dieser für mich nicht funktioniert. Der Grund dafür ist, dass diese Animationen asynchron sind.
Was ich getan habe ist definiert eine Eigenschaft
Und in meiner animation
InformationsquelleAutor der Antwort MendyK
iOS 9+ - Methode, funktioniert sogar, wenn
layer.animationKeys
keine Schlüssel enthält:Aus der docs:
InformationsquelleAutor der Antwort deej
Könnte man die Abfrage der Präsentations-Schicht, wie hier vorgeschlagen Meine presentation layer entspricht nicht meinem Modell-Ebene, obwohl ich keine Animationen
InformationsquelleAutor der Antwort HeikoG
Ref auf die Frage: UIView center-position während der animation
Ich Vergleiche die Ansicht des Rahmens und der Ebene.Präsentation()?.Rahmen zu überprüfen, es ist animiert. Wenn leftView ist auf dem Weg zu beenden, der leftView.Schicht.Präsentation()?.Rahmen nicht gleich der Rahmen:
Aber diese Methode funktioniert möglicherweise nicht, wenn Sie die Ansicht verschieben, um die end-position, während der animation. Weitere Bedingung prüfen kann notwendig sein.
InformationsquelleAutor der Antwort Bill Chan