Возвращение вида в исходное положение после панорамирования

У меня есть вид (курица), который может быть перемещен вокруг, должен вернуться в исходное положение после освобождения. Прямо сейчас, курица просто исчезает, когда закончился panGesture.

Вот мой код:

override func viewDidLoad() {
        super.viewDidLoad()

        // record original Position
        originalChickenPosition = chicken.center
        print(originalChickenPosition) // works fine

        view.addGestureRecognizer(UIPanGestureRecognizer(target: self, action: "handlePan:"))    
    }


    func handlePan(panGesture: UIPanGestureRecognizer){

        switch panGesture.state{

        case .Began:
            // start flying

        case .Changed:
            // follow the pan
            let dCenter = panGesture.translationInView(view)
            chicken.center = CGPointMake(chicken.center.x + dCenter.x, chicken.center.y + dCenter.y)
            panGesture.setTranslation(CGPointZero, inView: view)

        case .Ended:
            // fly back
            if originalChickenPosition != nil{
              chicken.center = originalChickenPosition!
            }

        default: break

        }   
    }

Я нашел это: возвращая вид в исходное положение после жеста панорамирования, быстро, но, похоже, это другая проблема, я был бы рад, если бы мой взгляд отскочил назад.

Любые предложения приветствуются.

1 ответ

Решение

Там должны быть автолайты, установленные для представления. Если ДА, убедитесь, что вы обновили ограничения после того, как установили исходную позицию.

func handlePan(panGesture: UIPanGestureRecognizer){

    switch panGesture.state{

    case .Began:
        // start flying

    case .Changed:
        // follow the pan
        let dCenter = panGesture.translationInView(view)
        chicken.center = CGPointMake(chicken.center.x + dCenter.x, chicken.center.y + dCenter.y)
        panGesture.setTranslation(CGPointZero, inView: view)

    case .Ended:
        // fly back
        if originalChickenPosition != nil{
          chicken.center = originalChickenPosition!
        }
        **self.chicken.setNeedsUpdateConstraints()**
        default: break

    }   
}
Другие вопросы по тегам