收缩高度约束动画问题
Posted
技术标签:
【中文标题】收缩高度约束动画问题【英文标题】:Shrink heightConstraint animation issue 【发布时间】:2019-04-18 14:19:21 【问题描述】:我正在尝试制作上拉菜单视图
我使用 xib 制作了这个拉起视图并附加到 ViewController
并在上拉视图中添加平移手势
最后,我使用平移手势更新了动画的高度约束。
func pullUpControlView(_ pullUpControlView: PullUpControlView, didPanned height: CGFloat, animated: Bool)
self.pullUpControlViewHeightConstraint?.constant = height
if animated
UIView.animate(withDuration: 10, delay: 0, usingSpringWithDamping: 0.7, initialSpringVelocity: 0, options: .curveEaseOut, animations:
self.view.layoutIfNeeded()
, completion: nil)
这是我的代码,当视图达到最大高度时,它的动画效果很好,
但是当最小化视图时,视图会立即最小化并开始缓慢向下移动(奇怪的动画)
我怎样才能正确地制作这个动画(从上到下缩小高度)
【问题讨论】:
您是说视图立即最小化并向下移动...!您对视图有何期待?它(视图)应该做什么? 您能否添加一些您尝试存档的屏幕截图并添加上拉视图约束? 我添加了我的情况,我只是希望我的视图高度平滑缩小,但它不起作用 请上传一个重现问题的示例项目。在我看来,您发布的代码似乎没有问题。我猜你的问题来自你项目的其他地方。您在其他地方打电话给layoutIfNeeded()
吗?
【参考方案1】:
func pullUpControlView(_ pullUpControlView: PullUpControlView, didPanned height: CGFloat, animated: Bool)
UIView.animate(withDuration: 5, animations: () -> Void in
self.view.layoutIfNeeded()
, completion: (_ finished: Bool) -> Void in
self.pullUpControlViewHeightConstraint?.constant = height
self.view.layoutIfNeeded()
//if animation is finished ("finished" == *YES*), then hidden = "finished" ... (aka hidden = *YES*)
)
【讨论】:
以上是关于收缩高度约束动画问题的主要内容,如果未能解决你的问题,请参考以下文章