2016-12-30 4 views
0

zu beenden Ich bin Swift immer noch ziemlich neu. Ich frage mich, wie ich eine Animationsfunktion schnell außerhalb der Ausführung der Funktion beenden kann. In dem Fall unten führe ich eine Animation für 15 Sekunden aus, aber jedes Mal, wenn ein Benutzer eine bestimmte Taste drückt, möchte ich, dass die Animation stoppt und die Elemente verschwinden. Irgendwelche Gedanken über den besten Weg, dies zu tun? Hier ist die Funktion.Swift: Wie eine Funktion außerhalb der Ausführung der Funktion

func createTimerAnimation() { 
    // create timer line shapes 

    guard self.timerisActive else { 

     print("in guard 1") 
     return 
    } 

    let screenWidth = (self.view.bounds.width) 
    let screenHeight = (self.view.bounds.height) 

    let timerShapeLeft = drawTimerShape() 
    let timerShapeRight = drawTimerShape() 
    let timerShapeCenter = drawTimerShape() 

    view.addSubview(timerShapeLeft) 
    view.addSubview(timerShapeRight) 
    view.addSubview(timerShapeCenter) 

UIView.animate(withDuration: 14.5, delay: 0.0, options: [.curveEaseOut], animations:{ 
      timerShapeLeft.frame = CGRect (x: (screenWidth/2), y: (screenHeight - 60), width: timerShapeLeft.frame.width, height: (timerShapeLeft.frame.height - 30)) 
      timerShapeRight.frame = CGRect (x: (screenWidth/2), y: (screenHeight - 60), width: timerShapeRight.frame.width, height: (timerShapeRight.frame.height - 30)) 
      timerShapeCenter.frame = CGRect (x: (screenWidth/2), y: (screenHeight - 60), width: timerShapeCenter.frame.width, height: (timerShapeCenter.frame.height)) 
      timerShapeLeft.alpha = 1.0 
      timerShapeRight.alpha = 1.0 
      timerShapeCenter.alpha = 0.4 
      timerShapeLeft.tintColor = self.hexGray 
      timerShapeRight.tintColor = self.hexGray 

      guard self.timerisActive else { 

       print("in guard 1") 
       return 
      } 

Antwort

2

Animationen sind tatsächlich durch die Schicht Sicht behandelt, damit Sie sie dort mit CALayer.removeAllAnimations() abbrechen:

view.layer.removeAllAnimations() 
Verwandte Themen