У меня есть представление о прогрессе, подобное тому, что есть в Snapchat и Instagram Stories. Мое содержимое изменяется после того, как представление прогресса доходит до конца или при нажатии на кнопку.Сбросить UIProgressView и сразу начать анимацию с помощью Swift 3
Я пересматриваю представление прогресса при изменении содержимого. Все работает так, как ожидалось, пока нет вмешательства. Но при нажатии на следующую кнопку просмотр прогресса не запускается до тех пор, пока не будет выполнен другой цикл.
Вы можете быстро увидеть video here.
я наткнулся this question в то время как я исследовал, я тот же сценарий, но я не мог применить принцип как новичку с быстрым 3.
Вот мой код, любая помощь будет высоко оценен:
func startTimer(){
self.timer = Timer.scheduledTimer(timeInterval: 3, target: self, selector: #selector(myVievController.nextItem), userInfo: nil, repeats: false)
}
func updateProgressBar() {
self.progressView.setProgress(1.0, animated: false)
UIView.animate(withDuration: 2.8, animations: {() -> Void in
self.progressView.layoutIfNeeded()
}, completion: { finished in
if finished {
self.progressView.setProgress(0, animated: false)
}
})
}
func nextItem(){
// ...
self.updateUI(item: self.myCurrentItem)
// ...
}
func updateUI(item:MyItem){
self.updateProgressBar()
self.timer.invalidate()
self.startTimer()
// Clear old item and fill new values etc...
}
@IBAction func nextButtonPressed(_ sender: UIButton) {
self.nextItem()
}
Спасибо. Я попробовал ваше решение, но это мне не помогает. Я только что редактировал вопрос, чтобы добавить видео. Возможно, это может быть полезно. –
попробуйте просто вызвать «self.updateProgressBar()» внутри «updateUI» –
Разве это уже нет? –