我一直在研究Swift中这个简单的硬币投放iOS应用程序。我有一个animateKeyFrames块来动画硬币的运动。
第一个关键帧使硬币上升,第二个关键帧根据随机计算的结果分配硬币图像,第三个关键帧使硬币下降。
但是,出于某种原因,硬币的图像在上升之前总是先变化。这就像第一个执行第二个关键帧,我尝试了所有的排列无济于事。我相信我甚至已经正确输入了withRelativeStartTime参数。
这里可能会发生什么?
let animationDuration = 1.5
UIView.animateKeyframes(withDuration: animationDuration, delay: 0.0, options: [.calculationModeLinear], animations: {
UIView.addKeyframe(withRelativeStartTime: 0, relativeDuration: 0.45, animations: {
self.imageView.center.y = self.imageView.center.y - 200
self.imageView.alpha = 0.0
})
UIView.addKeyframe(withRelativeStartTime: 3/7, relativeDuration: 0.1, animations: {
self.imageView.image = UIImage(named: tossRes)
})
UIView.addKeyframe(withRelativeStartTime: 4/7, relativeDuration: 0.45, animations: {
self.imageView.center.y = self.imageView.center.y + 200
self.imageView.alpha = 1.0
})
})