如何为多个图像视图处理一个UITapGesturerecognizer

时间:2012-07-05 09:35:07

标签: iphone ios

我正在开发一个应用程序。我正在使用七十UIImageViews。对于所有UIImageViews,我使用单UITapgestureRecognizer。但只有它适用于最后UIImageView

所以请告诉我如何为所有UITapGgestureRecognizer使用单UIImageViews。我的代码看起来像

radiotap=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(radiochanged:)];
radiotap.delegate=self;

a=[[UIImageView alloc]initWithFrame:CGRectMake(10, male.frame.origin.y, ima.size.width, ima.size.height)];
[a setImage:ima];
a.tag=0;
a.userInteractionEnabled=YES;
[a addGestureRecognizer:radiotap];
[scroll addSubview:a];


 b=[[UIImageView alloc]initWithFrame:CGRectMake(10, female.frame.origin.y, ima.size.width, ima.size.height)];
[a setImage:ima];
b.tag=1;
b.userInteractionEnabled=YES;
[b addGestureRecognizer:radiotap];
[scroll addSubview:b];

像这样我添加了70个UIImageViews。

3 个答案:

答案 0 :(得分:0)

  1. 将点击手势识别器添加到图像视图的容器
  2. 禁用所有图片视图的用户互动
  3. 这样,触摸就会传递到容纳图像视图的容器下方。

    嘿,我现在得到了你的问题。

    为每个图像视图创建新的手势识别器。问题是你只创建了一个手势识别器的实例。

    我希望你在那里得到了错误,并会适当地编辑你的代码。如果你遇到困难,请告诉我。

答案 1 :(得分:0)

您可以将一个UITapGestureRecognizer分配给一个UIView。一个想法是子类UIIimageView并添加UITapgestureRecognizer作为属性。并为for循环中的每个UIImageViewUITapGestureRecognizer分配/ init。

答案 2 :(得分:0)

当您将UITapGestureRecognizer添加到视图中时,您实际上是这样做的:

您正在设置UITapGestureRecognizer的属性,该属性包含链接到的视图: 意味着每个UITapGestureRecognizer只有一个与之关联的uiview。

这就是为什么你只能在你设置的最后一个中看到它。

执行您想要的操作,因此您需要为每个视图创建/分配/初始化UITapGestureRecognizer ...