如何识别使用手势识别器点击哪个UIImageView?

时间:2014-02-11 03:43:18

标签: iphone uigesturerecognizer gesture-recognition

我的视图中有5个ImageViews,我有所有这些的IBOutlets。

我有一个单击手势识别器,我已经为所有这些设置了。

现在在这个手势识别器的动作中,我需要找出已经点击的图像。

请让我知道实现这一目标的方法。请注意我使用故事板添加所有这些图像和手势识别器。

感谢。

2 个答案:

答案 0 :(得分:1)

UIImageView不响应触摸手势。您需要对其进行子类化,然后将手势侦听器附加到每个视图。来自here

  

UIImageView派生自UIView,派生自   UIResponder因此它已准备好处理触摸事件。你会想要的   提供touchesBegan,touchesMoved和touchesEnded方法和   如果用户点击图像,它们将被调用。如果你想要的只是一个   点击事件,更容易使用图像集的自定义按钮   作为按钮图像。但如果你想对水龙头进行更细粒度的控制,   移动等等。这是要走的路。

     

您还需要了解更多内容:

     

覆盖canBecomeFirstResponder并返回YES以指示   视图可以成为触摸事件的焦点(默认为NO)。

     

将userInteractionEnabled属性设置为YES。默认值为   UIViews是YES,但是对于UIImageViews是NO,所以你必须明确   打开它。

     

如果您想响应多点触控事件(即捏合,缩放等)   你需要将multipleTouchEnabled设置为YES。

答案 1 :(得分:0)

您应该为每个imageView设置点击手势。 在此之后,您应该为每个imageView设置一个唯一标记。 然后,您可以使用标记指定tapped imageView。可以通过UIGestureRecognizer的属性“view”来实现imageView对象。