我有一个 CollectionView,我想在用户选择的 CollectionViewCell 内创建一个动画。我选择使用 animateKeyframesWithDuration 是因为我想逐步创建自定义动画。我的代码如下所示:
func animate() {
UIView.animateKeyframesWithDuration(1.0, delay: 0.0, options: .AllowUserInteraction, animations: { () -> Void in
UIView.addKeyframeWithRelativeStartTime(0.0, relativeDuration: 0.5, animations: { () -> Void in
// First step
})
UIView.addKeyframeWithRelativeStartTime(0.5, relativeDuration: 0.5, animations: { () -> Void in
// Second step
})
}) { (finished: Bool) -> Void in
if self.shouldStopAnimating {
self.loadingView.layer.removeAllAnimations()
} else {
self.animate()
}
}
}
这在选择时在自定义 CollectionViewCell 内执行。问题是我想在某个特定点立即强制停止动画。但是当我这样做时,动画并没有完全停止,它只是将剩余的动画移动到另一个单元格上(可能是最后一个重用的单元格?)
我不明白为什么会这样。我尝试了不同的方法,但在正常进入完成块之前,它们都没有成功停止动画
有人对此有任何想法吗?