UIScrollview 内的 UIView 内的 UILabel 上的 UIGestureRecognizer

UIGestureRecognizer on UILabel inside UIView inside UIScrollview

我有一个以编程方式创建的 UILabel,它在 UIView 和 UIScrollView 中使用自动布局。最初它在屏幕外,然后滑到屏幕上(通过动画自动布局约束常量的变化)。我正在尝试向 UILabel 添加手势识别器(单击),但该手势从未被识别。如果我向 UIView 添加一个,手势识别器就会工作。有谁知道解决这个问题的方法是什么?这是自动布局引起的问题吗? 谢谢。

编辑

这肯定和scrollview吞屏有关。我刚刚在滚动视图之外创建了相同的标签,手势识别器工作正常!

编辑 2 我可以使用 Interface Builder 在滚动视图中创建标签,但以编程方式它不起作用...

您必须在 UILabel

中检查 User Interaction Enabled

如果您以编程方式添加 UITapGestureRecognizer:

viewDidLoad 中我添加了以下代码:

let gesture = UITapGestureRecognizer(target: self, action: Selector("myaction"))
self.label.addGestureRecognizer(gesture)

选择器:

func myaction() {
    println("Label tapped")
}

其中self.label是被点击标签的参考出口。

原来标签嵌入了 2 个视图中,在滚动视图的视图中。把它拿出来似乎解决了他们的问题...