我有个小问题。我正在尝试创建像Instagram一样的动态进度条。它在所有情况下都能正常工作,除非我想要展示上一个项目。断点说,当我切换到上一项时,UIViewPropertyAnimator位置保持在.end状态,因此它立即调用它的完成并切换到“返回”到下一项。所以我的问题是-当animator完成它的工作时,如何将它的位置重新设置为.start,然后切换到下一个项目?
发布于 2019-12-10 22:03:12
该问题与之前调用的函数有关。在移动到下一项或上一项之前,我调用了一个函数,它应该通过for_in周期更新所有的UIProgressView对象。因此,当上一项出现在屏幕上时,此项的UIProgressView仍为.progress = 1.0,UIViewPropertyAnimator与此无关,因此它调用完成块并切换下一项。
fillProgress(bars: currentStoryItem)
let duration = story.files[currentStoryItem].duration
DispatchQueue.main.asyncAfter(deadline: .now() + 0.01) {
self.progressBars[self.currentStoryItem].startFillingAnimation(with: duration)
}asyncAfter救了我的命)
https://stackoverflow.com/questions/59266353
复制相似问题