0

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

我还有另一个子视图,以编程方式添加,带有一个-160,0,160,63名为的框架leftView,包含在mainView.

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

我只是有一个问题,在leftView,我有一些UIImageView设置userInteractionEnabledYES,上面有一个手势识别器。但是这个手势识别器永远不会被触发,它仍然调用该-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath方法。

我看了这个 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];
4

3 回答 3

2

如果没有看到gestureRecognizer 的初始化,可能有很多问题。然而,有两件主要的事情要研究:

1.) 你设置cancelsTouchesInView标志了吗?通常这会弄乱您的 tableView 触摸,但您应该调查一下。

2.)您是否验证了情节提要内的子视图布局?你的 imageView 有没有什么东西阻塞了?

- 你实际上已经正确分配了gestureRecognizer吗?

于 2013-07-03T21:45:06.010 回答
1

您是否尝试将可选择的表格单元格设置为否?在这种情况下,您的滑动手势应该仍然有效,但用于单元格选择的 table deligate 方法不应该。

于 2013-07-03T20:25:34.033 回答
1

我自己想通了。

问题是因为leftView框架在框架之外mainView(x 为 -160)。

为了解决我的问题,我更改mainView了情节提要,使其也从 -160 开始。而不是leftView在 x 中添加 -160,而是在 0 处添加。

不管怎么说,还是要谢谢你 !

于 2013-07-04T07:05:27.087 回答