Iphone IB中的点击手势识别器能否用于UILabel和/或UIImageView

Iphone IB中的点击手势识别器能否用于UILabel和/或UIImageView,iphone,xcode,uitapgesturerecognizer,Iphone,Xcode,Uitapgesturerecognizer,我有一个包含一组图像和标签的单一UIView的xib。如果我将点击手势识别器拖到父视图上,它工作得很好,但是我需要添加代码来确定点击的位置,这样我才能正确响应点击的标签 我想,如果我可以将手势识别器拖到每个标签和/或图像上,并将IBActions连接到我做出适当响应的每个位置,那会容易得多。不幸的是,我不能让它工作。我只能从父视图获取要执行的委托方法 我所做的是将点击手势识别器拖到标签上,然后将视图控制器连接为TGR的委托,并连接一个iAction方法来处理点击。除了使用iAction方法外,我

我有一个包含一组图像和标签的单一UIView的xib。如果我将点击手势识别器拖到父视图上,它工作得很好,但是我需要添加代码来确定点击的位置,这样我才能正确响应点击的标签

我想,如果我可以将手势识别器拖到每个标签和/或图像上,并将IBActions连接到我做出适当响应的每个位置,那会容易得多。不幸的是,我不能让它工作。我只能从父视图获取要执行的委托方法

我所做的是将点击手势识别器拖到标签上,然后将视图控制器连接为TGR的委托,并连接一个iAction方法来处理点击。除了使用iAction方法外,我还尝试了在GestureRecognitzerShouldBegin:GestureRecognitzer委托方法中分配目标和操作方法,但未成功

这不应该奏效吗,还是我只是一厢情愿地想

谢谢你的帮助


John

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

在界面生成器或情节提要中,在标签或图像上,选中userInteractionEnabled框

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

(Swift):


奇怪的是,IB中的复选框对标签有效,但对图像有效的唯一方法是用代码。我想我找到了区别的原因。如果对多个对象使用同一iAction,并选中这两个对象的userInteractionEnabled复选框,则只有选中的第一个对象有效。第二个,或者两者都必须在代码中完成。很高兴你解决了这个问题。奇怪的是,iAction会以这种方式影响userInteractionEnabled复选框;也许还有别的事。但是,我从来没有在Interface Builder中找到所有的怪癖。非常感谢!我很紧张,解决方案非常简单。值得一提的是,在Xcode 7 Interface Builder中,有两个复选框用于“启用用户交互”。一个在身份检查器中(图标看起来像身份证),另一个在属性检查器中(图标是五角大楼,看起来像拇指滑块)。您需要检查的属性位于属性检查器中。
myLabel.userInteractionEnabled = YES;
myImage.userInteractionEnabled = YES;
myLabel.userInteractionEnabled = true
myImage.userInteractionEnabled = true