0
私は最初に画面の中央に配置されたラベルを持っています。現在は、画面の中央から右端に移動し、自動逆戻りして元の位置に戻ります。私は別のanimateWithDurationを開始して、中央のリターンから画面の左の位置に移動してから、位置に自動復帰し、そこから順番にループするようにしたいと思います。animateWithDuration次々と
私はすでに最初の半分の作業を試みていますが、中央から左への遷移とループを開始する2番目の部分への継続方法はわかりません。
スウィフト2.0コード:
func animateRight()
{
UIView.animateWithDuration(1.0, delay: 0.0, options: [ .Autoreverse, .CurveEaseInOut], animations: {
label.center.x = self.view.frame.width/2
}, completion: { finished in
if finished {
label.frame.origin.x = 0.0
animateLeft()
}
})
}
func animateLeft()
{
UIView.animateWithDuration(1.0, delay: 0.0, options: [ .Autoreverse, .CurveEaseInOut], animations: {
label.frame.origin.x = (self.view.frame.width/2) * -1
}, completion: { finished in
if finished {
label.center.x = self.view.frame.width/2
animateRight()
}
})
}
// Start process
animateRight()
これは良いです!私はそれをさらに進歩させましたが、それは間違って機能しています。視覚効果のために無限に繰り返すアニメーションなので、このループ全体が永遠に続くのは大丈夫です。コードを更新し、現在はanimateRight()を実行し、animationLeft()を順番に実行します。 animationLeft()はループし、animateRight()を決して呼び出しません。 – theflarenet
私はコードを更新しました。右にアニメートすると.Autoreverseは使用されませんが、右に終了します。そして、左アニメーションを呼び出すと.Autoreverseと.Repeat –
優秀!ありがとうございました! – theflarenet