当设置UILabel帧大小的动画时,更改的是iOS9,而不是iOS8(在iOS8上,改为跳转到最终状态)使用UIView或iOS9时,此问题消失。
什么会导致这个问题?(你可以在https://github.com/IdoNave/UIlabelAnimation上看到这个项目)
class MyView: UIView {
var progrssLabel: UILabel?
func startProgreesAnimation(from: CGFloat, duration: Double) {
if progrssLabel == nil {
progrssLabel = UILabel(frame: CGRect(x: 0, y: 0, width: frame.width * from, height: frame.height))
progrssLabel?.backgroundColor = UIColor.redColor()
self.addSubview(progrssLabel!)
}
UIView.animateWithDuration(duration, delay: 0, options: UIViewAnimationOptions.CurveEaseInOut, animations: {
self.progrssLabel!.frame = self.bounds
}) { (finish) in
print("ProgreesAnimation ended")
}
}
}
最佳答案
找到此问题的原因和解决方案:https://stackoverflow.com/a/22224630/1105726
将标签添加到其他视图并在视图上运行动画解决了问题!(链接中有更多详细信息)