IOS简单拖拽手势实现


 要实现手势拖拽,最重要的一点是要获得我们点击手机屏幕时的落点位置,然后让视图的位置随着我们拖拽的方向和坐标的变化而变化,就能达到我们要的效果。

以下是例子只处理了向右拖拽,如果是向左拖拽,您可根据需求自定义

1.创建手势并添加到相应试图上

UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pangesture:)];

 [self.mSliderView addGestureRecognizer:pan];

2.实现手势事件

/**

     *  获取手势按下的地方

     */

    CGPoint panGesturePoint = [gesture translationInView:self.mSliderView];

    

    /**

     * 处理像左/像右拖拽事件

     */

    if (panGesturePoint.x < 0) {

        [self transitionView:gesture.view];

    } else {

        gesture.view.center = CGPointMake(gesture.view.center.x + panGesturePoint.x, gesture.view.center.y);

    }

     /**

     * 手势结束和失败时处理方式

     */

    if (gesture.state == UIGestureRecognizerStateFailed || gesture.state == UIGestureRecognizerStateEnded) {

        /**

         * 试图向右拖拽超过试图本身一般位置时,关闭筛选试图;否则返回单初始位置

         */

        if (gesture.view.center.x <= (kSizeScreenWidth / 2 + 60 + ((kSizeScreenWidth - 60) / 2))) {

           ...  回退动作

        } else {

          ...  关闭动作

        }

    }

    /**

     * 清空位移数据,避免拖拽事件的位移叠加

     */

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM