2015-05-26 2 views
1

У меня есть скрытый UIView в нижней части моего UIViewController.Как создать анимацию перетаскивания для UIView?

Я хотел бы создать интерактивную анимацию, которая будет постепенно показывать мой UIView, например, если бы я перетащил UIView снизу, и он будет следовать за моим пальцем (местоположение, скорость и т. Д.). Если я перейду на полпути к окончательному местоположению моего UIView и отпустил бы мой палец, он продолжил бы, если я не дойду до этой половины пути, он будет скрыт. В принципе, такое же поведение, как и центр управления.

Проблема в том, что я не знаю с чего начать. Может ли кто-нибудь указать мне в правильном направлении?

ответ

4

Вы должны использовать UIGestureRecognizer, например UIScreenEdgePanGestureRecognizer

  1. сохранить свойство

    var gestureReconginzer:UIScreenEdgePanGestureRecognizer? 
    
  2. Затем в viewDidLoad, INIT в 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, вы можете сослаться на часть жеста.

Смежные вопросы