UIPIckerView 的 UITapGestureRecognizer

Posted

技术标签:

【中文标题】UIPIckerView 的 UITapGestureRecognizer【英文标题】:UITapGestureRecognizer for UIPIckerView 【发布时间】:2014-10-20 11:08:27 【问题描述】:

带有 UIPickerView 的 UITapGestureRecognizer 无法正常工作。为什么?

class someVC: UIViewController, UITapGestureRecognizerDelegate

override func viewDidLoad() 
   let tap = UITapGestureRecognizer(target: self, action: "dismissKeyboard")
   self.pickerView.addGestureRecognizer(tap)
   tap.delegate = self


func dismissKeyboard() 
   textField.resignFirstResponder()

【问题讨论】:

【参考方案1】:

我通过添加覆盖 getureRecognizer 解决了问题

func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool 
    return true

【讨论】:

【参考方案2】:

看起来不错,会不会是另一个手势识别器吞下了水龙头?您需要确保您的对象位于视图堆栈的顶部,以确保它被触发。您还设置了委托,是否调用了委托方法?还是他们也不开火?如果他们不这样做,则意味着您的点击手势没有被触摸(另一个手势正在触摸),如果它确实被触发,则意味着该操作有问题(但我怀疑是这种情况)。

【讨论】:

谢谢。我通过覆盖gestureRecognizer解决了这个问题

以上是关于UIPIckerView 的 UITapGestureRecognizer的主要内容,如果未能解决你的问题,请参考以下文章

为啥 UIPickerView 是半透明的

如何从另一个 UIPickerview 更改 UIPickerView 的字符串?

UIPickerView 选择和隐藏

如果 UIPickerView 未触及,则 UIPickerView 选择第 0 行

点击 uipickerview 时键盘不退出

如何检测 UIPickerView 上的变化?