我有一个带有单个UIView的xib,其中包含一堆图像和标签。如果我将Tap Gesture Recognizer拖到父视图上,它运行良好,但我需要添加代码来确定水龙头的位置,以便我可以正确响应点击的标签。
我认为如果我可以将Gesture Recognizers拖动到每个标签和/或图像上并将IBActions连接到我响应的每个地方,那将会更容易。不幸的是,我不能让这个工作。我只能从父视图中获取委托方法。
我所做的是将Tap Gesture Recognizer拖到标签上,然后将视图控制器连接为TGR的委托,并连接IBAction方法来处理水龙头。除了使用IBAction方法之外,我尝试了在gestureRecognizerShouldBegin:gestureRecognizer委托方法中分配目标和操作方法而没有成功。
这不应该起作用,还是我只是在想?
感谢您的帮助。
约翰
答案 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