• iOS滑动手势UIPanGestureRecognizer 注意事项


         今天在做侧滑页面时,发现页面随着滑动手势而滑动,到临界点时,如果再滑动会出现抖动现象.找到解决办法是进入方法后先判断一次,再判断是在滑动范围内让页面滑动.遂将滑动手势(UIPanGestureRecognizer )注意事项总结了如下:

    代码:

     

    - (void)panAction:(UIPanGestureRecognizer *)pan{

        

        _canLeft = YES;

        _canRight = YES;

        

        //点相对于上一个点的位置

        CGPoint moviePoint = [pan translationInView:pan.view];

        //点的速度(正负可判断滑动趋势)

        CGPoint velocity = [pan velocityInView:pan.view];

        

        //侧滑的范围

        CGFloat instance = kScreenWidth - 100;

        

        //禁止左划的情况(在最左边时)

        if (pan.view.left <= 0 && moviePoint.x <= 0) {

            _canLeft = NO;

        }

        //禁止右划得情况(在最右边时)

        if (pan.view.left >= instance && moviePoint.x >= 0) {

            _canRight = NO;

        }

        

        //页面可以滑动的条件

        if (_canRight && _canLeft && pan.view.left >= 0 && pan.view.left <= instance){

            //移动

            pan.view.center =

            CGPointMake(pan.view.center.x + moviePoint.x, pan.view.center.y);

     

            

        }

        

        //每次都需要复位

        [pan setTranslation:CGPointZero inView:pan.view];

        

        

        //松开手指时判断滑动趋势让其归位

        if (pan.state == UIGestureRecognizerStateEnded) {

            if (pan.view.left < 10) {

                pan.view.left = 0;

            }else if(pan.view.left > instance - 10){

            

                pan.view.left = instance;

            }

            

            

           }

        

    }

     

  • 相关阅读:
    BZOJ 3513: [MUTC2013]idiots(fft)
    BZOJ 2194: 快速傅立叶之二(fft)
    BZOJ 3779: 重组病毒(线段树+lct+树剖)
    LUOGU P3723 [AH2017/HNOI2017]礼物 (fft)
    CF 622F (拉格朗日插值)
    LUOGU P4781 【模板】拉格朗日插值
    bzoj 4184 shallot——线段树分治+线性基
    51nod 1673 树有几多愁——虚树+状压DP
    bzoj 3611(洛谷 4103) [Heoi2014]大工程——虚树
    bzoj 2286(洛谷 2495) [Sdoi2011]消耗战——虚树
  • 原文地址:https://www.cnblogs.com/duzhaoquan/p/5885679.html
Copyright © 2020-2023  润新知