layoutIfNeeded奇怪的动画故障

时间:2015-03-20 12:19:59

标签: ios animation autolayout

我正在设置UITextField的调整大小。我正在使用带有约束的Autolayout。我的故事板中有约束H:|-[textField] -(8)-[label]-(8)-[image]-|

我为标签飞离屏幕设置动画,删除textField和标签之间的约束,然后在图像和textField之间创建一个新约束。 当我为view.layoutIfNeeded()设置动画时,textField中的文本会出现在textField的左上角,然后会动画到正常位置。

为什么会发生这种情况?如何阻止它?

1 个答案:

答案 0 :(得分:13)

除了您正在讨论的约束之外,您可能还有待处理的布局操作。在进行约束更改之前尝试调用layoutIfNeeded一次,然后添加约束并再次在动画块内调用layoutIfNeeded

这将确保只有您想要设置动画的约束更改实际上是动画的。