2017-05-10 5 views
0

nur schnelle Anfrage in Bezug auf die Umsetzung eines Problems, das ich mit der Animation eines UIImageView. Ich habe erfolgreich das Animieren eines Bildes implementiert, um vom Bildschirm zu gleiten. aber ich möchte, dass es wieder erscheint, wenn es die Ansicht gibt, um eine Side-Scroller-Spielanimation zu simulieren.Xcode Swift - Animieren UIImageView Repetitive

Etwas wie folgt aus: enter image description here

Ich habe versucht, einen Abschluss-Handler Umsetzung aber rang das Verständnis der Logik, wie es zu implementieren, so entfernte ich meine Versuche; so ist mein Code links wie folgt:

let oldCenter = background.center 
     let newCenter = CGPoint(x: oldCenter.x - 400, y: oldCenter.y) 

     UIView.animate(withDuration: 2, delay: 0, options: .curveLinear, animations: { 
      self.background.center = newCenter 
     }) { (success: Bool) in 
      print("Done moving image") 
     } 

Ein Beispiel oder Hinweise, wie man meine gewünschte Animation erreicht würde geschätzt!

Antwort

2
let oldCenter = view.center 
    let newCenter = CGPoint(x: oldCenter.x - 400, y: oldCenter.y) 
    UIView.animate(withDuration: 2.0, delay: 0.0, options: 
    [.curveLinear, .repeat], animations: { 
     view.center = newCenter 
    }, completion: nil) 
0

Sie können UIView UIView Wiederholungsoption

let oldCenter = background.center 
    let newCenter = CGPoint(x: oldCenter.x - 400, y: oldCenter.y) 

    UIView.animate(withDuration: 2, delay: 0, options: [.curveLinear, repeat], animations: { 
     self.background.center = newCenter 
    }) { (success: Bool) in 
     print("Done moving image") 
     if(success) 
     { 
      self.background.center = oldCenter 
     } 
    } 
1

versuchen Wenn Sie die Animation wiederholt werden soll, gibt es keine Notwendigkeit, die completion zu implementieren. animate(withDuration:delay:options:animations:completion:) hat options Parameter (UIViewAnimationOptions), das ist:

Eine Maske von Optionen anzeigt, wie Sie die Animationen ausführen möchten. Eine Liste der gültigen Konstanten finden Sie unter UIViewAnimationOptions.

Eine der Konstanten für die UIViewAnimationOptions ist repeat:

Wiederholen Sie die Animation auf unbestimmte Zeit.

Also, was Sie tun sollten:

UIView.animateKeyframes(withDuration: 2.0, delay: 0.0, options: [.curveLinear, .repeat], animations: { 
    self.background.center = newCenter 
}, completion: nil) 

Wieder Umsetzung completion wird für die Wiederholung der Animation nicht erforderlich, deren Umsetzung bis zu Ihrem Fall ist.

Verwandte Themen