我有一个以编程方式创建的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 个视图中。把它从这里拿出来似乎解决了他们的问题......