动画替换自动布局

时间:2016-03-10 19:15:32

标签: ios animation autolayout core-animation

是否可以通过完全更改其约束来将视图从一个帧设置为另一个帧?我并不意味着改变约束的属性,我知道它有效,但是如果我删除并重新添加完全不同的约束,可以自动布局(或者它实际上是什么子系统......核心动画?)将前一帧设置为动画新框架,还是需要保留约束的相同实例才能为其设置动画?

2 个答案:

答案 0 :(得分:1)

如果自动布局到位(这是Xcode中的默认设置),为视图框设置动画的最佳方法是更改​​约束constant属性,然后要求Core Animation为更改设置动画。这在此解释:https://www.invasivecode.com/weblog/uikit-dynamics-layer-constraint/

如果您尝试禁用约束并为视图frame设置动画,则会产生一种非常奇怪的行为。

请注意:从iOS 9开始,您不应删除或添加约束。相反,您必须使用active属性激活和停用它们。 Apple改变了这一点以改善布局性能。

答案 1 :(得分:0)

这将是一个有趣的事情要探索。理论上,您可以从视图中删除所有约束。 UiView为此提供了适当的功能。

然后,您需要在同一范围内添加一组新约束。然后调用layoutifneeded(在动画块中),然后发布结果。

祝你好运