У меня есть следующая анимация, которую я хочу обойти, пока я не нажму кнопку, тогда я хочу, чтобы она прекратила анимацию. Дело в том, что, когда я нажимаю кнопку несколько раз, анимация просто странная и из-за ее скорости ... Любая помощь, чтобы исправить это и сделать ее более жидкой и нормальной? Спасибо! Вот мой код:UIAnimation loop бесконечно, пока я не нажму кнопку ... Как?
func animate(){
UIView.animateWithDuration(3, animations: {self.blueBar.center = CGPointMake(self.blueBar.center.x + 550, self.blueBar.center.y + 550)
}, completion: {(value: Bool) in
if !self.buttonHasBeenPressed {
self.animate()
}
})
}
EDIT: Код для действия, которое запускает и останавливает анимацию:
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
if !timerIsGoing {
buttonHasBeenPressed = false
animate()
futureTime = NSDate.timeIntervalSinceReferenceDate() + 5.0000000
timer = NSTimer.scheduledTimerWithTimeInterval(
0.02,
target: self,
selector: ("update"),
userInfo: nil,
repeats: true)
} else {
if labelValue != 0.00000 {
} else {
}
timer.invalidate()
if labelValue == -0 {
labelValue = 0
}
labelTime.text = String(format: "%0.5f", labelValue)
buttonHasBeenPressed = true
timerIsGoing = false
}
«Когда я нажимаю кнопку несколько раз, анимация просто странная и из-за ее скорости ...» Ну, это ясно, как грязь. Что это должно значить? Если проблема связана с нажатием кнопки, вам необходимо предоставить подробную информацию о том, что происходит, когда вы нажимаете кнопку. Связано ли это с IBAction? Поэтому отправьте код для этого IBAction. Связано ли это с сеге? Скажи нам это. Если код кнопки устанавливает только флаг 'buttonHasBeenPressed', тогда ваш код должен просто останавливать анимацию, когда текущая итерация заканчивается, поэтому происходит больше событий, о которых ваши читатели не могут знать, если вы не сообщите нам об этом. –
Ок, я сожалею, плохо отредактировал сообщение! Спасибо –