scrollview添加手势 不影响子控件点击事件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scrollview添加手势 不影响子控件点击事件相关的知识,希望对你有一定的参考价值。

 

给父视图添加手势,但是子视图的点击事件失效了,怎么办?我在写tableView 自定义cel中显示多张图片 可以左右滑动 我在cell里面放了一个collectionView, 点击tableViewCell 跳转到详情页 如果点的是collectionView里的第三张图片,则详情页直接滑到第三张 ,点击其他区域 从第一张开始。

当图片的少的时候 点击collectionView空白区域的时候,tableViewCell的点击代理方法不走,把collectionView的userInteractionEnabled 设置成NO 代理方法走了,但是collectionview 不能滑动了,collectionViewCell的点击代理方法也不走了。下面是解决方法:

给collection添加手势

//初始化手势

UITapGestureRecognizer *tap=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapcollection)];

//设置代理

        tap.delegate=self;

        [self.imagesColl addGestureRecognizer:tap];

 //遵循这个代理方法  还有其他的代理

// 看介绍 它走在 touchesBegan:withEvent:之前

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{

//判断是不是点的collectionView

    if ([touch.view isKindOfClass:[UICollectionView class]]) {

//处理手势 走到你的手势方法里 处理你自己的逻辑

        return YES;

    }

    //如果点击的是cell 返回NO 会走collectionView: didSelectItemAtIndexPath:

    return  NO;

}

 

以上是关于scrollview添加手势 不影响子控件点击事件的主要内容,如果未能解决你的问题,请参考以下文章

Unity中NGUI上使用Scrollview

xib或storyBoard中往scrollView添加子控件

UIGestureRecongnizer 手势拦截

立即响应ScrollView上的子视图的手势

带有选取器(分段控件)子视图和选择手势的列表项

向 Scrollview 内的 UIImageView 添加长按手势