美文网首页
解决由于UIScrollView或横向的UICollection

解决由于UIScrollView或横向的UICollection

作者: 骄傲的大公鸡丶 | 来源:发表于2017-03-03 22:43 被阅读902次

    首先创建一个继承于UIScrollView的子类,然后在子类中重写以下方法即可:

    //一句话总结就是此方法返回YES时,手势事件会一直往下传递,不论当前层次是否对该事件进行响应。

    - (BOOL)gestureRecognizer:(UIGestureRecognizer*)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer*)otherGestureRecognizer {

    if([self panBack:gestureRecognizer]) {

    return YES;

    }

    return NO;

    }

    //location_X可自己定义,其代表的是滑动返回距左边的有效长度

    - (BOOL)panBack:(UIGestureRecognizer*)gestureRecognizer {

    //是滑动返回距左边的有效长度

    intlocation_X =40;

    if(gestureRecognizer ==self.panGestureRecognizer) {

    UIPanGestureRecognizer*pan = (UIPanGestureRecognizer*)gestureRecognizer;

    CGPointpoint = [pan translationInView:self];

    UIGestureRecognizerStatestate = gestureRecognizer.state;

    if(UIGestureRecognizerStateBegan== state ||UIGestureRecognizerStatePossible== state) {

    CGPointlocation = [gestureRecognizer locationInView:self];

    //这是允许每张图片都可实现滑动返回

    inttemp1 = location.x;

    inttemp2 =SCREEN_W;

    NSIntegerXX = temp1 % temp2;

    if(point.x>0&& XX < location_X) {

    returnYES;

    }

    //下面的是只允许在第一张时滑动返回生效

    //            if (point.x > 0 && location.x < location_X && self.contentOffset.x <= 0) {

    //                return YES;

    //            }

    }

    }

    return NO;

    }

    - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer*)gestureRecognizer {

    if([self panBack:gestureRecognizer]) {

    return NO;

    }

    return YES;

    }

    相关文章

      网友评论

          本文标题:解决由于UIScrollView或横向的UICollection

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