[英]UITableViewCell subview does not receive touch
我的可重用单元格包含一个视图及其所有信息( 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
方法。
我看着这个答案 ,但这对我没有帮助。
有人可以帮我吗?
谢谢 !!
编辑:这是我的手势识别器实例化
// 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是否有部分遮挡?
-另外,您实际上已分配了正确的手势识别器?
您是否尝试过将表格单元格可选设置为否? 在这种情况下,您的滑动手势仍然可以使用,但是用于单元格选择的表格确定方法不应该使用。
我自己弄清楚了。
问题是因为leftView
框架不在mainView
框架(x中为-160)之外。
为了解决我的问题,我在情节mainView
中更改了mainView
,因此它也从-160开始。 而不是在x的-160处添加leftView
,而是在0处添加。
不管怎么说,还是要谢谢你 !
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.