我的可重用单元格包含一个视图及其所有信息(UIImageViewUILabel等),该视图的框架为0,0,320,63,名为mainView

我还以编程方式添加了另一个子视图,该子视图包含在-160,0,160,63中的名为leftViewmainView框架。

我在单元格中添加了一个UISwipeGestureRecognizer,因此在滑动时,我将mainView的框架更改为160,0,320,63。它完美地工作。

我只是有一个问题,在leftView中,我有一些UIImageView,其中userInteractionEnabled设置为YES,并且上面有手势识别器。但是此手势识别器永远不会触发,它仍会调用-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath方法。

我看了this SO answer,但这对我没有帮助。

有人可以帮我吗?

谢谢 !!

编辑:这是我的手势识别器实例化

// Selector is valid, I checked it out. _viewController too.
UIImageView * imageView = [[UIImageView alloc] initWithFrame:frame];
[imageView setImage:someImage];
[imageView setUserInteractionEnabled:YES];
[_leftView addSubview:imageView];
UITapGestureRecognizer * gr = [[UITapGestureRecognizer alloc] initWithTarget:_viewController action:selector];
[imageView addGestureRecognizer:gr];

最佳答案

在没有看到peerRecognizer的初始化的情况下,可能是很多问题。但是,有两点需要研究:

1.)您是否设置了cancelsTouchesInView标志?通常,这会弄乱您的tableView接触,但是您应该对其进行调查。

2.)您是否验证了情节提要中的子视图布局?有什么东西阻挡了您的imageView吗?

-另外,您实际上已分配了正确的actionRecognizer吗?

10-07 19:51
查看更多