У меня есть метка, которая первоначально расположена в центре экрана. В настоящее время он переходит из центра в правый конец экрана, затем автоматически возвращается в свое положение. Я хотел бы, чтобы это начало другого animateWithDuration, чтобы он продолжался от центра, возвращался в левую позицию экрана, затем автоматически возвращался в позицию и последовательно включался оттуда после.animateWithDuration один за другим
Я уже сделал попытку и успешно сделал первую половину работы, но я не уверен, как продолжить вторую часть, где он начнет переход к центру и левому краю.
Swift 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 и .Repeat –
Отлично! Спасибо! – theflarenet