2015-05-26 94 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,你可以參考手勢部分。