斯威夫特获得滑动手势的方向

时间:2016-01-26 07:27:42

标签: ios swift

我正在使用以下代码在Swift中创建一个UIButton:

let button = UIButton()
button.addTarget(self, action: "tileSwiped:", forControlEvents: .TouchDragExit)

我的tileSwiped函数定义如下:

func tileSwiped(button: UIButton) {
}

我想要做的是确定TouchDragExit事件发生的方向。更具体地说,我的按钮是一个矩形,我想知道拖动是否在顶部,底部,左侧或右侧边缘退出矩形。

但是,如果没有访问触发函数调用的动作事件,我看不到这样做的方法。但当然,我无法更改传递给tileSwiped函数的参数。那么如何才能获得“滑动”的方向呢?

(我愿意改变我的方法来倾听手势,因为我认为这种方法不会让我任何地方,但请注意我确实需要将按钮作为参数。)

1 个答案:

答案 0 :(得分:3)

使用UISwipeGestureRecognizer会更容易,请参阅Apple Documentation

您想要做的是:

  1. 创建UISwipeGestureRecognizer
  2. 指定您要识别的方向
  3. 将此识别器添加到按钮
  4. 实施回调方法
  5. 示例:

    let button = UIButton();
    // 1
    let swipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: "swipe:");
    // 2
    swipeGestureRecognizer.direction = .Left
    // 3
    button.addGestureRecognizer(swipeGestureRecognizer)
    

    // 4
    func swipe(gestureRecognizer: UISwipeGestureRecognizer) {
        NSLog("left")
    }