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

手势的响应与否

作者: 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