2015-08-06 2 views
0

Это не комплект спрайтов.Обнаружить, если пользователь движется пальцем влево или вправо (Swift)

Если у меня есть переменная, как один ниже

var value = 0 

Как я смог увеличить значение, если пользователь перетаскивает правильно и уменьшить, если они перетащить влево?

Спасибо!

+0

Вот отличный учебник по 'UIGestureRecognizer's в скор: HTTP: // www.raywenderlich.com/76020/using-uigesturerecognizer-with-swift-tutorial – Caleb

ответ

0

Вы можете использовать метод UIPanGestureRecognizer velocityInView, чтобы определить, в каком направлении вы направляетесь. Он возвращает CGPoint, поэтому вы можете вытащить значения x и y по вашему желанию. Положительный правый/вниз, отрицательный - влево/вверх.

1

Как Калеб прокомментировал, учебник Ray является большим, но если вы хотите реально быстрый пример, пожалуйста, проверьте следующий пример:

class ViewController: UIViewController, UIGestureRecognizerDelegate { 

    private var value: Int = 0 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     self.view.backgroundColor = UIColor.blackColor() 

     let recognizer = UIPanGestureRecognizer(target: self, action: Selector("handleDragging:")) 

     let inputView = UIView(frame: CGRectMake(0, 0, 100, 100)) 
     inputView.backgroundColor = UIColor.whiteColor() 
     inputView.userInteractionEnabled = true 
     inputView.addGestureRecognizer(recognizer) 

     self.view.addSubview(inputView) 
    } 

    func handleDragging(recognizer: UIPanGestureRecognizer) { 
     if (recognizer.state == .Changed) { 
      let point = recognizer.velocityInView(recognizer.view?.superview) 
      if (point.x > 0) { 
       self.value++; 
      } else { 
       self.value--; 
      } 
      println(self.value) 
     } 
    } 
}