iOS:UIView在启用UITabGestureRecognizer时失去了点击识别功能

问题描述 投票:0回答:1

我使用的是导入的按钮对象Floaty(https://github.com/kciter/Floaty),它是UIView类的子类。在我正在使用此按钮(包括文本字段)的其中一个视图控制器中,如果我在包含以下行时按下键,则在点击时关闭键盘时,按钮无法被选中...

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)

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

(重要的是要注意,所有上述代码都在我的视图控制器的ViewDidLoad函数中)

是否还有另一种方法可以在从文本字段中轻敲时关闭键盘?或者我还应该对Floaty(UIView)对象做些什么来处理点击/触摸事件?

ios cocoa-touch uiview uitextfield uikit
1个回答
0
投票

您可以尝试使用命中测试。通过命中测试,您可以分配处理触摸的视图。这篇伟大的文章解释了如何应用命中测试http://smnh.me/hit-testing-in-ios/

© www.soinside.com 2019 - 2024. All rights reserved.