在 UIScrollView 上时,tapGestureRecognizer 未触发操作 Swift
tapGestureRecognizer not firing action when on a UIScrollView Swift
我有一个 ViewController,它有一个 UIScrollView,并且在使用 tapGestureRecognizer 时键盘不会消失。这个动作甚至不会开火。通常这在我构建的其他 ViewController 上工作正常。
我认为 UIScrollView 正在耗尽所有触摸事件。我知道您可以将 UIScrollView 设置为关闭键盘,但我需要它来识别 tapGesture。这是我的代码:
@IBOutlet var tapGesture: UITapGestureRecognizer!
tapGesture = UITapGestureRecognizer(target: self, action: "tapRecognized:")
self.view.addGestureRecognizer(tapGesture)
tapGesture.cancelsTouchesInView = false
func tapRecognized(recognizer: UITapGestureRecognizer){
self.truckName.resignFirstResponder()
self.engineMake.resignFirstResponder()
truckName.endEditing(true)
self.view.endEditing(true)
println("tap gesture")
}
我想通了,它不起作用的全部原因是因为我将 tapGesture 添加到超级视图而不是滚动视图中的内容视图。我很高兴我解决了它,但讨厌你花几个小时尝试,一旦你 post 这个问题就出现了。
我有一个 ViewController,它有一个 UIScrollView,并且在使用 tapGestureRecognizer 时键盘不会消失。这个动作甚至不会开火。通常这在我构建的其他 ViewController 上工作正常。
我认为 UIScrollView 正在耗尽所有触摸事件。我知道您可以将 UIScrollView 设置为关闭键盘,但我需要它来识别 tapGesture。这是我的代码:
@IBOutlet var tapGesture: UITapGestureRecognizer!
tapGesture = UITapGestureRecognizer(target: self, action: "tapRecognized:")
self.view.addGestureRecognizer(tapGesture)
tapGesture.cancelsTouchesInView = false
func tapRecognized(recognizer: UITapGestureRecognizer){
self.truckName.resignFirstResponder()
self.engineMake.resignFirstResponder()
truckName.endEditing(true)
self.view.endEditing(true)
println("tap gesture")
}
我想通了,它不起作用的全部原因是因为我将 tapGesture 添加到超级视图而不是滚动视图中的内容视图。我很高兴我解决了它,但讨厌你花几个小时尝试,一旦你 post 这个问题就出现了。