代码之家  ›  专栏  ›  技术社区  ›  hadeneh

当我用UIView更新约束时,在textFieldDidBeginEditing中。设置动画它只跳到最终目标,不设置动画

  •  0
  • hadeneh  · 技术社区  · 7 年前
    func textFieldDidBeginEditing(_ textField: UITextField) {
        UIView.animate(withDuration: 1.5) {
            self.middleContainerCenterConstrains.constant = -70
            self.loadViewIfNeeded()
        }
    }
    

    有3个容器(顶部、中部、底部)。底部容器中没有任何东西。中间容器中有一个UIImage。顶部容器中有一个包含两个文本字段的容器。

    只有中间的容器具有固定高度。我的目标是在其中一个文本字段开始编辑时,用动画移动中间的容器。

    问题是,它不会设置动画,只会跳到最终目的地。

    MiddleContainerCenterConstraints是容器中的垂直约束(对齐)。

    1 回复  |  直到 7 年前
        1
  •  0
  •   sbsr    7 年前

    尝试更改您的 textFieldDidBeginEditing 对此:

    func textFieldDidBeginEditing(_ textField: UITextField) {
        self.middleContainerCenterConstrains.constant = -70
        UIView.animate(withDuration: 1.5) {
            self.view.layoutIfNeeded()
        }
    }