检测用户是否移动手指向左或向右(Swift)



这不是Sprite Kit

如果我有一个像下面这样的变量

var value = 0

如何在用户向右拖动时增加值,在向左拖动时减小值?

谢谢!

就像Caleb评论的那样,Ray的教程很棒,但如果你想要实际的swift示例,请查看下一个示例:

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)
        }
    }
}

您可以使用UIPanGestureRecognizer的velocityInView方法来确定您要去的方向。它返回一个CGPoint,因此您可以根据需要提取x和y值。正号是右/下,负数是左/上

最新更新