현재 애니메이션 기능 자체가 끝나기 전에 애니메이션 기능의 완료가 끝나는 문제가 있습니다.Swift - 애니메이션이 완료되기 전에 완료됩니다.
배열 progressBar[]
은 복수 UIProgressViews
을 포함합니다. 애니메이션이 끝나면 다음 애니메이션이 시작되기를 원합니다. 하지만 지금은 모두 즉시 시작됩니다.
어떻게 해결할 수 있습니까?
@objc func updateProgress() {
if self.index < self.images.count {
progressBar[index].setProgress(0.01, animated: false)
group.enter()
DispatchQueue.main.async {
UIView.animate(withDuration: 5, delay: 0.0, options: .curveLinear, animations: {
self.progressBar[self.index].setProgress(1.0, animated: true)
}, completion: { (finished: Bool) in
if finished == true {
self.group.leave()
}
})
}
group.notify(queue: .main) {
self.index += 1
self.updateProgress()
}
}
}
내가 생각 group.notify (큐 : .main)는 { self.index + = 1 self.updateProgress() }이 통화가 완료 핸들러 내부해야하지? – Suresh
아니요. 문제는 아닙니다. group.notify (queue : .main) {self.index + = 1 self.updateProgress()} 호출되고 잘 작동하지만 내 문제는 UIProgressView 애니메이션 끝내기 전에 이미 호출 된 것입니다. –