如何给uiview高度常量添加幻灯片动画?

How to add slide animation to uiview height constant?

我正在尝试创建这样的效果,当 scroll/swipe 向下时,视图控制器顶部的 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()
        }
    }

它可以工作,但缺少动画。我想知道模仿滚动动画或粘性 header 动画的最佳方法是什么。

提前感谢您的帮助。

swift 3.0

你可以试试下面的一个。

@IBAction func swipeUp(_ sender: UISwipeGestureRecognizer) {
        if(upperView.isHidden == false) { 
          upperView.isHidden = true
          heightUpperView.constant = 0
        }
        else{
          upperView.isHidden = false 
          heightUpperView.constant  = 372
        }
        UIView.animate(withDuration: 0.8) { 
          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()
     }
}