IB Tap Gesture Recognizer 总是从 Outlet Collection 返回第一个视图

Posted

技术标签:

【中文标题】IB Tap Gesture Recognizer 总是从 Outlet Collection 返回第一个视图【英文标题】:IB Tap Gesture Recognizer always returns first view from an Outlet Collection 【发布时间】:2013-08-04 18:28:01 【问题描述】:

我在连接到点击手势识别器的 IBOutletCollection 中有 3 个 UILabel。当我点击任何标签时,UITapGestureRecognizer* sender.view 始终包含集合中第一个标签的视图。

我是否偶然发现了一个错误,或者我在确定哪个标签被点击时做错了什么?

顺便说一句,我确保为代码中的所有标签启用交互(我读到了一个旧的 IB 错误),但这没有效果。

如果我断开第一个标签与手势识别器的连接,那么第二个标签总是在 sender.view 等中。

【问题讨论】:

【参考方案1】:

您必须为 3 个标签设置 3 个点击手势。以编程方式进行。一种手势只能用于一种视图。用相同的@Selector 制作 3 个UITapGestureRecognizer 并将它们添加到每个UILabel 上。不用担心这不是任何错误。

【讨论】:

感谢您的快速回答。我在 IB 中添加了另外两个手势识别器,并将它们连接到相同的 IBOutlet 和 IBAction,现在一切正常。 hmmm 因为手势识别器仅适用于单个视图,您无法将其添加到多个视图中。 :)

以上是关于IB Tap Gesture Recognizer 总是从 Outlet Collection 返回第一个视图的主要内容,如果未能解决你的问题,请参考以下文章

Spritekit中的Pan Gesture Recognizer移动对象

无法点击 UITableViewCell 上 CustomCell 的 Tap Recognizer

PanGesture 和 Tap Gesture 之间的冲突

当 UITextField 位于 UIScrollView 内时,使用 Tap Gesture 关闭键盘的问题。

从 Tap Gesture 中获取特定的集合视图单元格

Swift 3 - 带有 Tap Gesture 的图像视图