У меня есть следующая небольшая функция, которая содержит два основных действия, которые я хотел бы выполнить. Три секунды анимации, а затем по завершении этой анимации, другой вызов функции. Однако происходит то, что строка кода, которая вызывает другую функцию, выполняется до завершения анимации UIView.UIView анимация с завершающим блоком не работает
func switchToNormalState() {
print("Switching to Normal State")
currentState = "normal"
intervalCounter = intervalCounter + 1
setVisualsForState()
UIView.animateWithDuration(Double(normalDuration), animations: {() -> Void in
self.ProgressBar.setProgress(1.0, animated: true)
}, completion: { _ in
self.switchToFastState()
})
}
Я изучил другие похожие должности, которые искали решение, но ни одно из решений не разрешило мою головоломку. Что я делаю неправильно в блоке завершения, чтобы сделать эти действия последовательностью, а не одновременной?
Я думаю, что это происходит потому, что progressBar также имеет анимацию, поэтому я думаю, что завершение блока выполняется, как только выполняется анимационный блок. Но funtion работает быстро, потому что индикатор выполнения находится в процессе анимации. –
Что @ChathurangaSilva говорит правильно. Почему вы все равно используете для этого блок анимации UIView? Индикатор выполнения имеет свои собственные анимации. –