我试图创建这样的效果:当向下滚动/滑动时,视图控制器顶部的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/

10-13 04:07