UIGestureRecognizer on UILabel inside UIView inside UIScroll



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

编辑

这绝对与卷轴吞噬触摸有关。我刚刚在滚动视图之外创建了相同的标签,手势识别器工作正常!

编辑 2我可以使用界面生成器在滚动视图中创建标签,但以编程方式不起作用......

您必须在 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 个视图中。把它从这里拿出来似乎解决了他们的问题......

最新更新