使用约束设置动画视图?

时间:2018-01-07 22:40:42

标签: ios swift autolayout

我有两个文本字段displayNameTF和emailTF。

我想要为一个文本字段设置动画以覆盖另一个文本字段的顶部。

displayNameTF.center = emailTFOrigin

UIView.animate(withDuration: 0.3) {
                self.view.layoutIfNeeded()
            }

我已将emailTF的中心存储在emailTFOrigin中,并且我将displayNameTF的中心设置为它并为layoutIfNeeded设置动画。

我得到的动画是文本字段默认距离彼此约5个点,displaynameTF直接跳到emailTF的顶部,并动画回到其原始位置。

我希望发生的动画是displayNameTF在电子邮件的顶部动画。现在,它正在通过emailTF重新回到原来的位置。

如果游戏中存在限制,如何让顶部TF在底部TF的顶部进行动画制作?

enter image description here

2 个答案:

答案 0 :(得分:1)

在您的代码中,您尝试将自定义中心设置为文本字段。那是错的。因此,您的文本字段将返回到初始位置。 您应该为将文本字段置于其当前位置的约束设置动画,而不是这样做。

一个选项是您可以创建2个约束,并且一次只能激活其中一个约束。 1 =当前位置,2 =新位置。停用第一个并激活第二个。调用动画。文本字段将移动到第二个位置。

答案 1 :(得分:1)

创建约束,将底部TF的顶部连接到顶部TF的下部。创建该约束的出口。要为其设置动画,请将该约束的常量更改为TF的高度,并调用layoutIfNeeded()