Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS9打破了UILabel的动画_Ios_Uiview_Swift2_Ios9_Xcode7 - Fatal编程技术网

iOS9打破了UILabel的动画

iOS9打破了UILabel的动画,ios,uiview,swift2,ios9,xcode7,Ios,Uiview,Swift2,Ios9,Xcode7,我将代码从Swift 1.2迁移到Swift 2.0 在Swift 1.2/iOS8中,动画只起作用。但在iOS 9中,它不会设置动画,标签会立即更改位置,就好像从未调用过layoutifneed 下面是我如何设置UILabel和UIButton的动画。(我使用的是自动布局,这就是为什么我使用layoutifneed) 使用UILABEL(不起作用) 使用UIBUTTON(有效) 但是,如果我在UIButton上执行相同的操作,它就会工作 有什么想法吗?为什么UILabel不可设置动画 尝试添加

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

在Swift 1.2/iOS8中,动画只起作用。但在iOS 9中,它不会设置动画,标签会立即更改位置,就好像从未调用过
layoutifneed

下面是我如何设置UILabel和UIButton的动画。(我使用的是自动布局,这就是为什么我使用layoutifneed)

使用UILABEL(不起作用)

使用UIBUTTON(有效)

但是,如果我在UIButton上执行相同的操作,它就会工作

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

尝试添加:

self.titleLabel.setNeedsLayout();

在动画块之前。

通常,在更新视图上的约束时,应使用setNeedsLayout方法让iOS布局系统知道约束已更改。这是苹果公司的性能优化,这样他们就不会不必要地布局视图。至于为什么它对UIButton有效,我不能肯定。苹果可能在UIButton实现中调用了setNeedsLayout。
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);
self.titleLabel.setNeedsLayout();