本人现在想添加在Cell之外但属于CollectionView之内区域的手势,但是假如点击Cell也会被CollectionView捕获到,而且无法通过isKindOfClass区分,问一下有什么方法可以实现吗?
解决方案:10分
这就比较简单,你无非是想既触发didSelectItemAtIndexPath方法,又能在CollectionView自身上处理TapGesture。
你先往CollectionView上加一个TapGesture,然后你就发现didSelectItemAtIndexPath触发不了了,这种情况下,你实现TapGesture的delegate,即UIGestureRecognizerDelegate,加上这个处理就行了:
你先往CollectionView上加一个TapGesture,然后你就发现didSelectItemAtIndexPath触发不了了,这种情况下,你实现TapGesture的delegate,即UIGestureRecognizerDelegate,加上这个处理就行了:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { if (touch.view != self.collectionView) { return NO; } return YES; }
解决方案:10分
selector还是写你之前的selector,但是要加一句:
tapGestureRecognizer.delegate = self;
然后你的self要实现UIGestureRecognizerDelegate协议,其中就有gestureRecognizer:shouldReceiveTouch:方法
tapGestureRecognizer.delegate = self;
然后你的self要实现UIGestureRecognizerDelegate协议,其中就有gestureRecognizer:shouldReceiveTouch:方法