美文网首页
手势的响应与否

手势的响应与否

作者: hallfrita | 来源:发表于2020-06-11 15:45 被阅读0次

    问题

    在一个横向的UICollectionView上加一个上滑删除元素的功能。那么我们首先想到的是在cell上加一个UIPanGestureRecognizer。
    但是,添加pan手势后会发现,这个手势会影响UICollectionView的横向滚动事件

    解决思路

    控制添加的pan手势的触发时机

    手势开始前,只有在Y轴的速率大于在X轴的速率才响应添加的pan手势,否则,就会响应UICollectionView的横向滚动手势

    核心代码

    
    #pragma mark - UIGestureRecognizerDelegate
    
    -(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
        if([gestureRecognizer isEqual:self.panGR]) {
            UIPanGestureRecognizer *gr = (UIPanGestureRecognizer *)gestureRecognizer;
            CGPoint point = [gr velocityInView:self];
            ZYLog(@"velocityInView %@", NSStringFromCGPoint(point))
            if (abs(point.x) >= abs(point.y)) {
                return NO;
            }
        }
        return YES;
    }
    
    

    可能还有很多种别的方式实现这个需求,可以多多尝试。但我觉得这应该是一种比较简单的方式了。

    相关文章

      网友评论

          本文标题:手势的响应与否

          本文链接:https://www.haomeiwen.com/subject/cslnzhtx.html