我的可重用单元格包含一个视图及其所有信息(UIImageView
,UILabel
等),该视图的框架为0,0,320,63
,名为mainView
我还以编程方式添加了另一个子视图,该子视图包含在-160,0,160,63
中的名为leftView
的mainView
框架。
我在单元格中添加了一个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吗?