父视图的UITapGestureRecognizer和子视图UICollectionView的cell点击冲突解决办法

来源:互联网 发布:军用软件下载 编辑:程序博客网 时间:2024/06/07 15:27

情景:

1.向UIViewController的view上添加了一个UITapGestureRecognizer点击手势。

2.向UIViewController的view中add了一个UICollectionView。


出现的问题:

UICollectionView中cell的点击事件不响应,同tap手势冲突。


解决办法

实现gestureRecognizer的代理方法:

#pragma mark- --点击手势代理,为了去除手势冲突--- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{    if([touch.view isDescendantOfView:self.shpesGroupView]){        return NO;    }    return YES;}

解释:self.shpesGroupView就是collectionView所在的view。


拓展:

#pragma mark- --点击手势代理,为了去除手势冲突--- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{    if([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]){        return NO;    }    return YES;}
解释:tap手势同tableview点击冲突时,也可以这么解决冲突。




阅读全文
1 0
原创粉丝点击