【问题标题】:Animating view with constraints? [duplicate]带约束的动画视图? [复制]
【发布时间】:2018-06-16 22:55:35
【问题描述】:

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

我想为一个文本字段设置动画,使其越过另一个文本字段。

displayNameTF.center = emailTFOrigin

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

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

我得到的动画是默认情况下文本字段彼此相距大约 5 个点,displaynameTF 直接跳到 emailTF 的顶部,并动画回到原来的位置。

我希望发生的动画是 displayNameTF 在电子邮件顶部的动画。现在它正在从 emailTF 动画回到它的原始位置。

如果存在限制,我如何实现让顶部 TF 在底部 TF 之上进行动画?

【问题讨论】:

  • 如果有限制,你能不让设置中心变得相等吗?

标签: ios swift autolayout


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2020-06-23
      • 1970-01-01
      • 2016-11-29
      • 2015-02-09
      • 1970-01-01
      • 2013-12-04
      • 2019-02-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多