2015-05-26 98 views
1

我有一个隐藏的UIView在我的UIViewController的底部。如何为UIView创建拖动动画?

我想创造一个互动的动画将逐步显示出我的UIView,就像如果我拖着从底部UIView,它会按照我的手指(位置,速度等)。如果我在我的UIView的最后位置中途过半,然后松开我的手指,它会继续,如果我没有达到这个中间位置,它会隐藏起来。基本上,像控制中心一样的行为。

问题是我不知道从哪里开始。有人能指引我走向正确的方向吗?

回答

4

您应该使用UIGestureRecognizer,例如​​

  1. 保持财产

    var gestureReconginzer:UIScreenEdgePanGestureRecognizer? 
    
  2. 然后在viewDidLoad中,初始化的gestureReconginzer

    gestureReconginzer = UIScreenEdgePanGestureRecognizer(target: self, action: "catch:") 
    gestureReconginzer?.edges = UIRectEdge.Bottom 
    self.view.addGestureRecognizer(gestureReconginzer!) 
    
  3. 手势时,Reconginzed

    func catchGestrue(gesture:UIScreenEdgePanGestureRecognizer){ 
        switch(gesture.state){ 
        case .Began: 
        //Set your view hidden = false 
        case .Changed: 
        //Change your view center 
        case .Ended: 
        //Decide if your view reach half way. 
        //Use UIView.animateWithDuration to let your view return or go to right place 
        default: 
        } 
    } 
    

BTY:我不认为拉图从底部是一个好主意。

我有一个简单的目标C项目here,如果你知道目标C,你可以参考手势部分。