我的视图中有5个ImageViews,我有所有这些的IBOutlets。
我有一个单击手势识别器,我已经为所有这些设置了。
现在在这个手势识别器的动作中,我需要找出已经点击的图像。
请让我知道实现这一目标的方法。请注意我使用故事板添加所有这些图像和手势识别器。
感谢。
答案 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对象。