可以在UILabel和/或UIImageView上使用IB中的Tap手势识别器

时间:2011-11-15 10:12:24

标签: iphone xcode uitapgesturerecognizer

我有一个带有单个UIView的xib,其中包含一堆图像和标签。如果我将Tap Gesture Recognizer拖到父视图上,它运行良好,但我需要添加代码来确定水龙头的位置,以便我可以正确响应点击的标签。

我认为如果我可以将Gesture Recognizers拖动到每个标签和/或图像上并将IBActions连接到我响应的每个地方,那将会更容易。不幸的是,我不能让这个工作。我只能从父视图中获取委托方法。

我所做的是将Tap Gesture Recognizer拖到标签上,然后将视图控制器连接为TGR的委托,并连接IBAction方法来处理水龙头。除了使用IBAction方法之外,我尝试了在gestureRecognizerShouldBegin:gestureRecognizer委托方法中分配目标和操作方法而没有成功。

这不应该起作用,还是我只是在想?

感谢您的帮助。

约翰

1 个答案:

答案 0 :(得分:28)

在UIImages和UILabels上,userInteractionEnabled默认设置为NO。您可以对两者使用手势识别器,但首先必须重置此属性。

在Interface Builder或Storyboard中,在标签或图像上,选中userInteractionEnabled框。

或者,在代码中,只需执行以下操作(Objective-C):

myLabel.userInteractionEnabled = YES;
myImage.userInteractionEnabled = YES;

(SWIFT):

myLabel.userInteractionEnabled = true
myImage.userInteractionEnabled = true