Haltevorgang läuft CAKeyframeAnimation

8

Ich animiere die Rahmeneigenschaft eines UIView mit einem CAKeyframeAnimation für die CALayer der Ansicht und animiere die Eigenschaft "position". Ich möchte die Animation im aktuellen Zustand stoppen können, wenn der Benutzer auf den Bildschirm tippt, aber ich kann das nicht.

Ich kann die Animation einfach stoppen, indem ich

anrufe %Vor%

Das Problem ist, dass weder der Frame der Ansicht noch die Position der Ebene direkt von der Animation aktualisiert wird. Wenn ich mir die position -Eigenschaft zum Zeitpunkt des Starts der Animation ansehe und wenn sie in

endet %Vor%

es hat sich nicht geändert.

Es scheint, dass Sie dies explizit tun müssen, wenn die Animation stoppt. Aber wenn die Animation an einem beliebigen Punkt aufhört, wissen Sie nicht, wie weit sie weg ist. Die Frage ist also, wie man die Position der Ebene der Ebene aktualisieren soll oder wie weit die Animation gegangen ist, wenn sie gestoppt wurde.

    
Rich Bruchal 11.02.2009, 15:52
quelle

1 Antwort

21

Sie können dieses Anhalten der Animation erreichen, indem Sie die presentationLayer Ihrer animierenden UIView-Ebene anfassen und dann ihren Rahmen auf Ihre UIView anwenden, bevor Sie die Animation entfernen. Zum Beispiel:

%Vor%

Dies scheint das Einfrieren der UIView an der aktuellen animierten Position zu ermöglichen, nach der Sie suchen.

    
Brad Larson 11.02.2009, 17:49
quelle

Tags und Links