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()
我正在尝试制作动画,但我不知道自己做错了什么。我希望动画能够使菜单在向下滚动时放大,但由于放大后的约束,它会不断剪裁。
据我所知,我尽了一切努力尝试更改顺序或只是为了保持顶部固定,但直到现在我都没有成功。
(请参阅 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()