UIView 动画正在裁剪

UIView animation is clipping

我正在尝试制作动画,但我不知道自己做错了什么。我希望动画能够使菜单在向下滚动时放大,但由于放大后的约束,它会不断剪裁。

据我所知,我尽了一切努力尝试更改顺序或只是为了保持顶部固定,但直到现在我都没有成功。

(请参阅 Imgur link 的 gif 动图,我的意思是,位置突然跳跃)

menuHeightConstraint is the constraint for the UIView height

IBAction 函数的代码

@IBAction func openMenu() {
        menuIsOpen.toggle()
        menuHeightConstraint.constant = menuIsOpen ? 180 : 55
        logoHorizontalConstraint.constant = menuIsOpen ? 0 : -122
        logoVerticalConstraint.constant = menuIsOpen ? 15 : 7
        logoHeight.constant = menuIsOpen ? 75 : 40
        logoWidth.constant = menuIsOpen ? 75 : 40
        loginVertConstraint.constant = menuIsOpen ? 100 : 15 // label constraint
        
        let indicator = menuIsOpen ? UIImage(systemName: "arrow.up.circle.fill") : UIImage(systemName: "arrow.down.circle.fill")
        
        dropDownButtonImage.setImage(indicator, for: .normal)
        
        UIView.animate(
            withDuration: 0.5,
            delay: 0,
            options: .curveEaseIn,
            animations: {
                self.menuView.layoutIfNeeded()
                
            },
            completion: nil)
    }

Link to GIF -----,
constraint in storyboard

在您的 animations 块中,更改:

self.menuView.layoutIfNeeded()

至:

self.view.layoutIfNeeded()