未使用UISwipeGestureRecognizer调用函数

时间:2014-06-15 00:22:02

标签: ios uigesturerecognizer swift

标题意味着什么。手势识别器如何工作,特别是UIGestureRecognizer。这是我的代码的一小部分

var keyboardDismiser: UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: "gestureRecognizer:") keyboardDismiser.direction = .Right | .Left noteView.addGestureRecognizer(keyboardDismiser)

    func gestureRecognizer(sender: UISwipeGestureRecognizer!) {
    println("swipe")
    self.view.endEditing()
}

我的目标是在具有3页的UIScrollView中从视图切换到视图时关闭键盘。我究竟做错了什么?在Swift中没有太多关于此的文档。

2 个答案:

答案 0 :(得分:2)

首先在备注视图中设置识别器。它仅在备注视图中处于活动状态。

此外,您没有正确设置direction。您正在设置然后更改它的值。要将其设置为左右两侧,请使用|运算符。另外,direction知道UISwipeGestureRecognizerDirection,因此您无需指定。{/ p>

var keyboardDismiser = UISwipeGestureRecognizer(target: self, action: "gestureRecognizer:")
keyboardDismiser.direction = .Right | .Left
self.view.addGestureRecognizer(keyboardDismiser)

最后,我会使用endEditing()代替resignFirstResponder()

func gestureRecognizer(sender: UISwipeGestureRecognizer!) {
    println("swipe")
    self.view.endEditing(true)
}

希望有所帮助。

答案 1 :(得分:1)

我相信Swift中的选择器最后不需要:;它们只是一个带有函数名称的字符串:gestureRecognizer。所以这就是你应该拥有的:

var keyboardDismiser = UISwipeGestureRecognizer(target: self, action: "gestureRecognizer")

相关问题here