CollectionView Cell上的UISwipeGestureRecognizer无法正常工作

时间:2014-11-13 10:11:58

标签: ios object uicollectionview uiswipegesturerecognizer

我有一个带有多个Cell的UICollectionView(水平布局)。设备上只应显示一个Cell,4秒后下一个单元格淡入,旧的应该离开屏幕。这非常有效。我正在使用NSTimer进行自动动画制作。

我的问题是,当用户触摸(而非点击!)其中一个单元格时,我想停止此动画。所以我做了一个像这样的UISwipeGestureRecognizer:

- (void)viewDidLoad
{
[super viewDidLoad];
UISwipeGestureRecognizer *collectionViewSwipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self.collectionView action:@selector(didTouchCell:)];
collectionViewSwipe.delegate = self;
collectionViewSwipe.numberOfTouchesRequired = 1;

[self.collectionView addGestureRecognizer:collectionViewSwipe];
}

- (void)didTouchCell: (UISwipeGestureRecognizer*) recognizer {

[self.collectionViewTimer invalidate];
}

但是“didTouchCell”从未被调用过......

1 个答案:

答案 0 :(得分:2)

原来,CollectionView位于UIScrollView之上,所以我必须在我的Controller中实现这个方法:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
return true;
}