iOS:启用 UITabGestureRecognizer 后,UIView 失去点击识别功能

标签 ios cocoa-touch uiview uitextfield uikit

我正在使用导入的按钮对象 Floaty ( https://github.com/kciter/Floaty ),它是 UIView 类的子类。在我使用此按钮(包括文本字段)的 View Controller 之一中,如果我包含以下行以在远离...敲击时关闭键盘,则在敲击时无法选择该按钮。

let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.dismissKeyboard (_:)))
self.view.addGestureRecognizer(tapGesture)

如何关闭键盘的想法来自这个SO查询:iOS - Dismiss keyboard when touching outside of UITextField

我认为部分问题可能是 Floaty 按钮需要位于前面,因此我添加了以下代码行,从这个 SO 查询中找到:Losing tap recognition after adding a UIScrollView under a UIButton

floaty.bringSubviewToFront(self.view)

我将此行添加到使用它的 View 中 ViewDidLoad() 函数的末尾。

(可能需要注意的是,上述所有代码都在我的 View Controller 的 ViewDidLoad 函数中)

是否有另一种方法可以在远离文本字段时关闭键盘?或者我还应该对 Floaty (UIView) 对象执行其他操作来处理点击/触摸事件?

最佳答案

您可以尝试使用 HitTest 。通过点击测试,您可以分配一个处理触摸的 View 。这篇精彩的文章解释了如何应用 HitTest http://smnh.me/hit-testing-in-ios/

关于iOS:启用 UITabGestureRecognizer 后,UIView 失去点击识别功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55166665/

相关文章:

ios - 如何强制 iPad 横向加载?

ios - 如何为我在 Swift 中以编程方式创建的 UIViewController 子类创建 init?

ios - swift 3 IOS - 后退按钮问题

iOS颜色在UIImage中透明

cocoa-touch - 字符串操作没有内存泄漏?

iphone - 为什么我的 Root View 的高度不考虑其导航栏?

iphone - 这个标志的含义是什么?

ios - 裁剪 UIImageView 和手势识别器

ios - 如何在 iOS 上通过 UITextFields 进行枚举

ios - UISplitViewController 在第一次交互时制作灰框