iOS 9打破了UILabel的动画

时间:2015-09-08 16:33:54

标签: ios uiview swift2 ios9 xcode7

我将我的代码从Swift 1.2迁移到Swift 2.0

在Swift 1.2 / iOS8中,动画才有效。但是在iOS 9中,它没有动画,Label会立即改变位置,就像从未调用layoutIfNeeded一样。

以下是我为UILabel设置UIButton动画的方法。 (我正在使用Autolayout,这就是我使用layoutIfNeeded的原因)

使用UILABEL(不工作)

titleLabelTopConstraint.constant = 88;

UIView.animateWithDuration(0.8, delay: 0.38, usingSpringWithDamping: 0.54, initialSpringVelocity: 1, options: UIViewAnimationOptions.CurveLinear, animations: { () -> Void in
        self.titleLabel.layoutIfNeeded();
        }, completion: nil);

使用UIBUTTON(工作)

buttonTopConstraint.constant = 88;

UIView.animateWithDuration(0.8, delay: 0.38, usingSpringWithDamping: 0.54, initialSpringVelocity: 1, options: UIViewAnimationOptions.CurveLinear, animations: { () -> Void in
        self.button.layoutIfNeeded();
        }, completion: nil);

但是如果我在UIButton上做同样的事情,它就可以了!。

有什么想法?为什么UILabel不可动画?

1 个答案:

答案 0 :(得分:6)

尝试添加:

self.titleLabel.setNeedsLayout();

在动画块之前。