2017-05-10 16 views
0

UIImageViewをアニメーション化する際に問題が発生した場合のクイック問い合わせです。私は、画像をアニメーション化して画面外にスライドさせることに成功しました。サイドスクローラのゲームアニメーションをシミュレートするためのビューが存在する場合には、それを再表示したいと思っています。このようなXcode Swift - UIImageViewを繰り返しアニメーション化する

何か: enter image description here

私が完了ハンドラを実装しようとしたが、それを実装する方法のロジックを理解する苦労、私は私の試みを削除しました。次のように私のコードが残っている:私の希望のアニメーションを実現する方法について

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") 
     } 

例やポインタをいただければ幸いです!

答えて

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

あなたがアニメーションを繰り返したい場合は、completionを実装する必要が ありませんのUIViewのUIViewリピートオプション

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

を試すことができます。あなたがアニメーションを実行するかを示すオプションの

マスク: animate(withDuration:delay:options:animations:completion:)ですoptionsパラメータ(UIViewAnimationOptions)を、持っています。 有効な定数の一覧は、「UIViewAnimationOptions」を参照してください。 UIViewAnimationOptionsの定数の

一つrepeat次のとおりです。

無限にアニメーションを繰り返します。

だから、あなたは何をすべきか:

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

ここでも、実装completionは、それがあなたのケースまであるの実装、アニメーションを繰り返す必要はありません。

関連する問題