繁体   English   中英

UITableViewCell子视图不接收触摸

[英]UITableViewCell subview does not receive touch

我的可重用单元格包含一个视图及其所有信息( UIImageViewUILabel等),其框架为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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM