我试图创建这样的效果:当向下滚动/滑动时,视图控制器顶部的UIView将收缩,底部将展开。
这是我在上面视图中添加的刷卡手势的代码。
@IBAction func swipeUp(_ sender: UISwipeGestureRecognizer) {
if(upperView.isHidden == false){
upperView.isHidden = true
self.heightUpperView.constant = 0
self.view.layoutIfNeeded()
}
else{
self.heightUpperView.constant = 372
upperView.isHidden = false
self.view.layoutIfNeeded()
}
}
它工作,但缺乏动画。我想知道什么是模仿滚动动画或粘性头动画的最佳方法。
提前谢谢你的帮助。
最佳答案
self.view.layoutIfNeeded()
必须从UIView.animateWith...
调用。下面是一个代码示例:
@IBAction func swipeUp(_ sender: UISwipeGestureRecognizer)
{
// Set new constants first
if(upperView.isHidden == false)
{
upperView.isHidden = true
self.heightUpperView.constant = 0
}
else
{
self.heightUpperView.constant = 372
upperView.isHidden = false
}
// This line will animate all your constraint changes
UIView.animate(withDuration: 0.3)
{
self.view.layoutIfNeeded()
}
}
关于swift - 如何将幻灯片动画添加到uiview高度常量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45489279/