Iphone 如何在UITableViewCell的imageView上获取触摸事件?

Iphone 如何在UITableViewCell的imageView上获取触摸事件?,iphone,touch,Iphone,Touch,我想在用户点击或双击UITableViewCell的imageView时获得通知。我一直在尝试向imageView添加子视图,并在子视图控制器中使用touchesBegind:withEvent:,但无法触发我预期的事件。如何完成这项工作?在我的项目中,我将UIImageView子类化,以添加用户交互,如果它有用,您只需查看苹果示例代码“TapToZoom”项目。 简而言之,您必须启用用户交互,只有在这之后,UIImageView才会开始响应触摸。 这是通过设置userInteractionEn

我想在用户点击或双击UITableViewCell的imageView时获得通知。我一直在尝试向imageView添加子视图,并在子视图控制器中使用touchesBegind:withEvent:,但无法触发我预期的事件。如何完成这项工作?

在我的项目中,我将UIImageView子类化,以添加用户交互,如果它有用,您只需查看苹果示例代码“TapToZoom”项目。 简而言之,您必须启用用户交互,只有在这之后,UIImageView才会开始响应触摸。 这是通过设置userInteractionEnabled属性完成的:

[self setUserInteractionEnabled:YES];
然后,您可以通过自定义其他触摸属性,例如:

[self setMultipleTouchEnabled:YES];
twoFingerTapIsPossible = YES;
否则,您可能会实现一种缩略图视图,比如说照片应用程序。根据您的目标,您还可以考虑使用UIButton,您可以在其中设置背景图像。我有一个项目,我模拟原始照片应用程序的照片缩略图视图,只需在每个tableView行中以编程方式放置四个UIButton,效果很好。
干杯

谢谢你的回答,工作已经完成了

My solution: subclass a UIView, override touchesBegan:withEvent: in it's implementation file add the UIView(as subview) to cell.view and cover the position of imageView, then make the subview nearest transparent(alpha=0.015f) done. it works fine 我的解决方案: 在UIView的实现文件中,将其子类化为override TouchesBegind:withEvent: 将UIView(作为子视图)添加到cell.view并覆盖imageView的位置,然后使子视图最接近透明(alpha=0.015 f) 完成。 它很好用 注意:如果alpha值太小(0.01f),则不会触发触摸事件,有人知道原因吗?

还有一种解决方案:

向UIImageView添加类别以处理触摸事件。然后为每个触摸事件发送通知,并在view controller(或cell controller)中订阅通知

如果您感到兴奋,还可以将方法调用转发给视图控制器

然后为单元的imageView启用触摸事件:

[self setUserInteractionEnabled:YES];

现在,所有触摸都将发送到您想要处理它们的地方,而无需子类化。而且它是可重复使用的。

imageview不可能通过任何功能实现触摸事件。但是,您可以尝试放置UIButton而不是imageview,并设置该按钮的背景图像,这样您就可以同时获得图像和按钮触摸事件。看看这个答案:我尝试了几个不同的解决方案,但这个解决方案有效,是对我来说最简单、最干净的方法。我可以利用现有的UITableViewCell样式来布局单元格(也就是说,我不必向单元格添加子视图并进行布局),或者对任何内容进行子类化。很好…谢谢!子类化UIImageView有什么帮助?您无法设置UITableViewCell使用的imageview