2016-09-02 1 views
0

Ich erstelle ein Spiel, bei dem sich die Größe meiner UIImage ändert und der Benutzer zum richtigen Zeitpunkt auf den Bildschirm drücken muss, um die Animation zu stoppen. Die Endgröße wird dann mit einer festen Konstante verglichen, um den Benutzern Punkte zu geben, basierend darauf, wie nahe sie waren. Gibt es eine Möglichkeit, die .removeAllAnimations() -Methode zu verwenden und die Größe zu diesem Zeitpunkt zu erhalten? Ich habe versucht, mit view.bounds, view.frame, view.layer.frame und view.layer.bounds und sie sind alle falsch. Gibt es überhaupt eine andere Methode, die ich verwenden sollte?Swift - Die Größe eines UIImageview nach einer Animation wird unterbrochen/abgebrochen?

Antwort

1

sowohl UIView und UIViewController (sowie NSView und NSViewController) wirken als CAAnimationDelegate die die Methoden hat:

override func animationDidStop(anim: CAAnimation, finished flag: Bool)   
override func animationDidStart(anim: CAAnimation) 

So stellen Sie den Delegierten der Animation zu welcher Ansicht, Controller und nutzen diese Methoden die zu handhaben Stoppen Sie, starten Sie Ereignisse.

z.B.

let anim = CAAnimation() 
    ... set animation up here 
    anim.delegate = self 
+0

Ehrfürchtig, vielen Dank. Habe keine Zeit, es jetzt auszuprobieren, aber das hat mich definitiv in die richtige Richtung gelenkt – Niko

+1

stellen Sie sicher, dass Sie den Animationsdelegaten einstellen ... Ich höre mich selbst in der Vergangenheit an und stoße meinen Kopf gegen eine Wand, nur weil ich vergessen habe, sie einzustellen! hah –

Verwandte Themen