我有一个非常简单的项目,我想为标签上的右边距设置动画,但是当我尝试时,它会立即完成。
@IBAction func onDo(sender:UIButton)
{
self.view.setNeedsLayout()
self.testConstraint.constant = 40.0
UIView.animateWithDuration(2.0, animations: { () -> Void in
self.view.setNeedsLayout()
}) { (complete:Bool) -> Void in
}
}
项目在这里:
https://www.dropbox.com/s/9a0v0906riunkww/test2222.zip?dl=0
我是否漏掉了一些明显的东西?
更新#1
这似乎是 UILabels 的一个问题,标准的 UIView 或 UIButton 动画很好......那么 UILabel 有什么问题?
更新 #2
如果我将 UILabel View Content Mode 设置为 Center,那么它工作正常,但看起来不是很流畅...很奇怪。
最佳答案
我在这里可能偏离了主题,但在我看来,您的动画例程似乎只是执行 setNeedslayout
,这将导致屏幕立即重绘。您需要更改 UIView 的一些动画参数才能看到移动的东西。可能像 self.view.frame
一样。列出了 UIView 的动画属性 here .
关于swift - NSLayoutConstraint 动画立即完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35371992/