产生此类问题,原因在于单击手势先响应了 将tableview或者collectionview的事件给拦截所导致。所以,通过手势代理,不进行拦截,即可解决此类问题。
1.通过手势的UIGestureRecognizerDelegate代理来解决此类问题
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(dismissBubule)];
tap.delegate = self;
[self.view addGestureRecognizer:tap];
2.实现代理方法
#pragma mark - UIGestureRecognizerDelegate
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
//注意传入的参数是当前的CollectionView 或者 tableview对象
if ([touch.view isDescendantOfView:self.collectionView]) {
return NO;
}
return YES;
}
网友评论