2017-03-24 4 views
0

Hier ist mein Code:Wie setzt man die Animation in iOS zurück?

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(animated) 

    cloud.center.x -= view.bounds.width 
    cloud1.center.x -= view.bounds.width 
    cloud2.center.x -= view.bounds.width 
    cloud3.center.x -= view.bounds.width 
} 

override func viewDidAppear(_ animated: Bool) { 
    super.viewDidAppear(animated) 

    UIView.animate(withDuration: 12) { 
     self.cloud.center.x += self.view.bounds.width*2 

     UIView.animate(withDuration: 12, delay: 9, options: [], 
         animations: { 
          self.cloud1.center.x += self.view.bounds.width*2 
         }, 
         completion: nil 
     ) 
     UIView.animate(withDuration: 12, delay: 18, options: [], 
         animations: { 
          self.cloud2.center.x += self.view.bounds.width*2 
         }, 
         completion: nil 
     ) 
     UIView.animate(withDuration: 12, delay: 22, options: [], 
         animations: { 
          self.cloud3.center.x += self.view.bounds.width*2 
         }, 
         completion: nil 
     ) 
    } 
} 

ich eine Redo bekommen haben, die alles in der Seite abgesehen von meiner Animation setzt, die nur in einer Position bleibt. Wie kann ich die Animation zurücksetzen, um die Animation erneut abzuspielen?

Antwort

0

Ihr Animationscode verschiebt Ihre 4 Wolkenansichten um self.view.bounds.width*2 nach rechts, indem Sie diesen Betrag zu ihren Mittelpositionen hinzufügen.

Um diese Änderung rückgängig zu machen, subtrahieren Sie einfach den gleichen Betrag.

+0

Ich möchte es nicht rückgängig machen, ich möchte die Animation das gleiche tun, wenn ich den Knopf –

+0

drücke Das gleiche tun? Rückwärts animieren? Wenn Sie das Gleiche wieder vorwärts machen wollen, müssen Sie zuerst die Ansichten wieder in ihre ursprünglichen Positionen bringen. Sie müssen Ihr Ziel deutlich angeben. –

Verwandte Themen