【发布时间】:2017-05-10 07:32:32
【问题描述】:
所以我有一个UIButton,我想用动画更改它的文本。动画应该的工作方式是按钮的文本一直缩小到虚无,然后文本发生变化,然后又放大到原始大小。我仍然坚持试图让文本正确地缩小到虚无。
如果我使用此代码:
UIView.animateKeyframes(withDuration: 0.6, delay: 0, options: .calculationModeLinear, animations: {
//Zzzeeeewwwwwwwwww
UIView.addKeyframe(withRelativeStartTime: 0.0, relativeDuration: 0.3, animations: {
self.submitButton.titleLabel?.transform = self.submitButton.titleLabel!.transform.scaledBy(x: 0.001, y: 0.001);
})
//Wwwwwweeeeeeyyyyyppp
UIView.addKeyframe(withRelativeStartTime: 0.3, relativeDuration: 0.3, animations: {
self.submitButton.titleLabel?.transform = self.submitButton.titleLabel!.transform.scaledBy(x: 100, y: 100);
})
}, completion: nil)
我只得到第一部分的动画,它正确地缩小了,但随后没有放大。它只是弹回原位,没有动画,因为它会重新长出来。
我尝试通过将 UIView 动画与持续时间(“老式方式”)链接起来,结果正好相反。第一部分立即发生,然后它会正确生长。这是代码:
UIView.animate(withDuration: 0.3, animations: {
self.submitButton.titleLabel?.transform = self.submitButton.titleLabel!.transform.scaledBy(x: 0.01, y: 0.01);
}) { _ in
UIView.animate(withDuration: 0.3, animations: {
self.submitButton.titleLabel?.transform = self.submitButton.titleLabel!.transform.scaledBy(x: 100, y: 100);
}, completion: nil)
}
我不知道是什么导致了这个问题。我已经坚持了几个小时。我什至还没有改变文本。这会导致一系列其他问题。
【问题讨论】:
标签: ios swift swift3 uibutton uiviewanimation