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