我正在使用以下代码在 Swift 中创建一个 UIButton:
let button = UIButton()
button.addTarget(self, action: "tileSwiped:", forControlEvents: .TouchDragExit)
我的tileSwiped函数定义如下:
func tileSwiped(button: UIButton) {
}
我想做的是确定 TouchDragExit 事件发生的方向。更具体地说,我的按钮是一个矩形,我想知道拖动是在按钮的顶部、底部、左侧还是右侧边缘退出矩形。
但是,如果无法访问触发函数调用的运动事件,我看不出有什么方法可以做到这一点。但当然,我无法更改传递给 tileSwiped 函数的参数。那么如何获取“滑动”的方向呢?
(我愿意改变监听手势的方法,因为我认为这种方法不会让我有任何用处,但请注意,我确实需要将按钮作为参数保留。)
最佳答案
使用 UISwipeGestureRecognizer
会更容易,参见 Apple Documentation .
你要做的是:
- 创建一个
UISwipeGestureRecognizer
- 指定您要识别的方向
- 将这个识别器添加到按钮
- 实现回调方法
例子:
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")
}
关于ios - 快速获取滑动手势的方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35008751/