点击UITableViewCell中的UIImageView识别

目前我正面临一个问题,我想在UITableViewCell上的UIImageView被点击时执行操作。

问:我怎么能这样做? 任何人都可以看到代码或任何教程吗?

提前致谢!

这实际上比你想象的要容易。 您只需确保您在imageView上启用用户交互,并且您可以为其添加轻击手势。 这应该在单元被实例化时完成,以避免将多个轻敲手势添加到相同的图像视图。 例如:

- (instancetype)initWithCoder:(NSCoder *)aDecoder { if (self = [super initWithCoder:aDecoder]) { UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(myTapMethod:)]; [self.imageView addGestureRecognizer:tap]; [self.imageView setUserInteractionEnabled:YES]; } return self; } - (void)myTapMethod:(UITapGestureRecognizer *)tapGesture { UIImageView *imageView = (UIImageView *)tapGesture.view; NSLog(@"%@", imageView); } 

尝试这个

 //within cellForRowAtIndexPath (where customer table cell with imageview is created and reused) UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleImageTap:)]; tap.cancelsTouchesInView = YES; tap.numberOfTapsRequired = 1; [imageView addGestureRecognizer:tap]; // handle method - (void) handleImageTap:(UIGestureRecognizer *)gestureRecognizer { RKLogDebug(@"imaged tab"); } 

请确保你有….

 imageView.userInteractionEnabled = YES; 

你可以使用一个customButton来代替UIImageView

点击手势识别器可能非常消耗内存,并可能导致页面上的其他内容中断。 我个人会重新build议你创build一个自定义表格单元格,在自定义单元格框架中插入一个button,并在tableview代码中将self.customtablecell.background.image设置为你想要的图像。 通过这种方式,您可以将该button分配给一个IBaction,以便将其推送到您想要的任何视图。

使用ALActionBlocks在块中操作

 __weak ALViewController *wSelf = self; imageView.userInteractionEnabled = YES; UITapGestureRecognizer *gr = [[UITapGestureRecognizer alloc] initWithBlock:^(UITapGestureRecognizer *weakGR) { NSLog(@"pan %@", NSStringFromCGPoint([weakGR locationInView:wSelf.view])); }]; [self.imageView addGestureRecognizer:gr];