在textFieldDidBeginEditing中,当我使用UIView.animate更新约束时,它只跳转到最终目的地并且没有动画

时间:2018-01-13 09:43:53

标签: swift uiview uiviewanimation

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

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

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

问题在于它没有动画,只会跳到最终目的地。

middleContainerCenterConstrains是一个垂直容器约束(Align)。

1 个答案:

答案 0 :(得分:0)

尝试将textFieldDidBeginEditing更改为此:

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