美文网首页
swift dragable view 拖动view

swift dragable view 拖动view

作者: 松龄学编程 | 来源:发表于2020-05-27 11:51 被阅读0次

拖动view,有2个回调,一个用来调整约束constant,一个用来控制拖动结束,完成动画。做这个功能,数学基础不够,没种组合都试了试才成功,还是要学好数学呀。

class DragableView: UIView {
    var lastOffsetYConstant: CGFloat = 0
    
    var offsetYCallBack: ((CGFloat) -> Void)?
    var panEndCallBack: ((CGFloat) -> Void)?
    
    override init(frame: CGRect) {
        super.init(frame: frame)
        
        // Initialization code
        let panRecognizer = UIPanGestureRecognizer(target:self, action:#selector(detectPan))
        self.gestureRecognizers = [panRecognizer]
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    @objc
    func detectPan(_ recognizer: UIPanGestureRecognizer) {
        let translation  = recognizer.translation(in: self.superview)
        offsetYCallBack?(lastOffsetYConstant + translation.y)
        if recognizer.state == .ended {
            lastOffsetYConstant += translation.y
            if let panEnd = panEndCallBack {
                panEnd(lastOffsetYConstant)
                lastOffsetYConstant = 0
            }
        }
    }
}

参照地址:https://github.com/ioscreator/ioscreator/blob/master/IOSDragViewsGesturesTutorial/IOSDragViewsGesturesTutorial/CustomView.swift

相关文章

  • swift dragable view 拖动view

    拖动view,有2个回调,一个用来调整约束constant,一个用来控制拖动结束,完成动画。做这个功能,数学基础不...

  • 拖动view

    https://www.jianshu.com/p/1844cdaf3514[https://www.jiansh...

  • Android拖拽和嵌套滑动

    View.onDragListener(View) Api 11引入的工具类,用于实现View的拖拽操作,列表拖动...

  • 可拖动的View

    使用动画实现View的拖动 重写View中onTouchEvent方法,通过getRawX()和getRawY()...

  • iOS 抽屉效果

    抽屉效果思路: 三个View叠加,一个作为左View,一个作为右View,一个主View,在主View上添加拖动手...

  • 2017-05-17-Android拖动view实现

    一、拖动实现的原理 实现拖拽view,在Android中至少可以俩种实现方案:1.可以直接去拖动view2,利用v...

  • IOS 截取视图 四个角拖动缩放视图

    拖动视图View,规则性的 创建一个普通的View 没什么好说的 示意图 如下 1 普通版本 :视图的简单拖动 代...

  • 抽屉效果

    创建一个控制器,给控制器的view添加两个view 给上面的view添加手势,在手指拖动的时候,对上面的view做...

  • IOS 截取视图 四个角拖动缩放视图

    拖动视图View,规则性的创建一个普通的View 没什么好说的 示意图 如下1 普通版本 :视图的简单拖动代码地...

  • 自定义支持悬浮子View的Viewgroup

    我的例子继承ConstraintLayout,把要拖动的view在xml中 tag设置为float,其他的view...

网友评论

      本文标题:swift dragable view 拖动view

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