当为 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 将标签添加到其他 View 并在 View 上运行动画解决了问题! (链接中有更多详细信息)
关于ios - UILabel 帧大小动画不适用于 ios8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36857921/