首页 > 移动平台 > 详细

IOS简单拖拽手势实现

时间:2019-08-22 15:22:47      阅读:102      评论:0      收藏:0      [点我收藏+]

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

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

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];

IOS简单拖拽手势实现

原文:https://www.cnblogs.com/eric-zhangy1992/p/11394417.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!