14

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

我认为如果我可以改为将手势识别器拖动到每个标签和/或图像并将 IBActions 连接到每个我做出适当响应的地方会容易得多。不幸的是,我无法让它发挥作用。我只能从父视图中获取要执行的委托方法。

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

这不应该工作,还是我只是一厢情愿?

谢谢你的帮助。

约翰

4

1 回答 1

28

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

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

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

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

(迅速):

myLabel.userInteractionEnabled = true
myImage.userInteractionEnabled = true
于 2011-11-15T10:23:46.757 回答