uiview内的uilabel - 为标签添加手势而不是使用owrking

我在uiview中有一个uilabel(和其他标签)。 我添加了一个手势,当标签被点击时,我执行一些ibaction。

这个动作并没有被触发,但是如果我把标签放在uiview之外(意思是它不是uiview的孩子),它就可以正常工作。我将它放回视图中,而不是停止触发该操作。

任何想法为什么?

当标签位于uiview中时,它会对手势做出反应,我不知道为什么(尽管uiview和标签都启用了“用户交互”)。

TIA

0
额外 编辑
意见: 1
[self.lbltst setUserInteractionEnabled:YES]; [self.resultView setUserInteractionEnabled:YES]; UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self.resultView action:@selector(dispDetail)]; [self.lbltst addGestureRecognizer:tap];以上是代码 - 标签是lbltst,包含标签的uiview是resultview
额外 作者 Stk Stocki,
确保 userInteractionEnabled 在包含视图中设置为 YES
额外 作者 Paul.s,
你在UIView或UIImageView中添加了标签?也请张贴一些代码
额外 作者 Omar Abdelhafith,
为什么不在标签上添加一个透明的自定义按钮来实现这个功能? (假设单击)
额外 作者 Nitin Alabur,

3 答案

显然有一个问题与父母的控制,我redrew视图,它工作正常。感谢您的意见。

0
额外

或者只是没有UILabel,只有按钮的文本是可见的,这样你就不必有UILabel和UIButton(从内存的角度来看)。

0
额外
我不喜欢标签的想法,并且在它上面有一个按钮,因为我可以使用手势来挂钩标签以触发事件,所以实际上没有必要。唯一的问题是,它的工作原理是标签不在另一个容器内,在这种情况下UIview。
额外 作者 Stk Stocki,

我认为这里的问题是 UILabel 正在接收touch事件而不是UIView。尝试将以下代码(当然,修改为适合您的标签)添加到 viewDidLoad 方法中:

myLabel.userInteractionEnabled = FALSE;

这应该允许触摸事件传递给UIView。你为什么做这个?使用 UIButton 可能会更容易吗?

0
额外
我希望uilabel手势不是uiview的工作,但它只是在uiview里面而已。
额外 作者 Stk Stocki,
是的,请检查是否有UserinterectionEnable或不?
额外 作者 Prabhat Kasera,