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

In textFieldDidBeginEditing when I update the constrains with UIView.animate it only jumps to the final destination and doesn't animate

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

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

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

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

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

尝试将您的 textFieldDidBeginEditing 更改为:

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