美文网首页
UITapGestureRecognizer 手势

UITapGestureRecognizer 手势

作者: woo_5857 | 来源:发表于2021-09-10 11:56 被阅读0次

        let singleRecognizer = UITapGestureRecognizer.init(target: self, action: #selector(DCFChReadSelectionsBookTextSwHintView.singleRecognizerviewClick))

        singleRecognizer.numberOfTapsRequired=1;// 单击

        self.addGestureRecognizer(singleRecognizer);

        self.isUserInteractionEnabled = true;

        let panGR = UIPanGestureRecognizer.init(target: self, action: #selector(DCFChReadSelectionsBookTextSwHintView.pan(gr:)));

        let pinchGR = UIPinchGestureRecognizer.init(target: self, action: #selector(DCFChReadSelectionsBookTextSwHintView.pinch(gr:)));

        let rotationGR = UIRotationGestureRecognizer.init(target: self, action: #selector(DCFChReadSelectionsBookTextSwHintView.rotation(gr:)));

    func singleRecognizerviewClick() {

        DCFChReadSelectionsBookTextSwHintView.setPointTurnThePageHint();

        self.removeFromSuperview();

//        var page :DCFChReadHomeBookSelectViewController?

//        page = DCFChReadHomeBookSelectViewController.init();

//        self.addSubview(page!.view);

    }

    //移动

    func pan(gr:UIPanGestureRecognizer){

        DCFChReadSelectionsBookTextSwHintView.setPointTurnThePageHint();

        self.removeFromSuperview();

    }

//捏合

    func pinch(gr:UIPinchGestureRecognizer){

        DCFChReadSelectionsBookTextSwHintView.setPointTurnThePageHint();

        self.removeFromSuperview();

    }

    //旋转

    func rotation(gr:UIRotationGestureRecognizer){

        DCFChReadSelectionsBookTextSwHintView.setPointTurnThePageHint();

        self.removeFromSuperview();

    }

    @objc override func opRBPanClick(gr:UIPanGestureRecognizer){

      //移动的位置

        let translation = gr.translation(in: gr.view);

        let nw = self.bounds.size.width + translation.x;

        let nh = self.bounds.size.height + translation.y;

        //复位

        gr.setTranslation(CGPoint.zero, in: gr.view);

    }

 /* 此处给其增加长按手势,用此手势触发cell移动效果 */

        let longPan = UILongPressGestureRecognizer.init(target: self, action: #selector(handlelongGesture(gr:)));

        collectionView?.addGestureRecognizer(longPan);

//MARK: 长按效果

    @objc func handlelongGesture(gr:UILongPressGestureRecognizer){

        /* 判断手势状态 */

        switchgr.state{

        case UIGestureRecognizer.State.began:do {

            /* 判断手势落点位置是否在路径上 */

            self.selectIndexPath = self.collectionView?.indexPathForItem(at: gr.location(in: self.collectionView))

        }

            break;

        case UIGestureRecognizer.State.changed: do {

            /* 移动过程当中随时更新cell位置 */

            self.collectionView?.updateInteractiveMovementTargetPosition( gr.location(in: self.collectionView))

            let indexPath = self.collectionView?.indexPathForItem(at: gr.location(in: self.collectionView))

                   }

            break;

        case UIGestureRecognizer.State.ended: do {

            /* 移动结束后关闭cell移动 */

            let indexPath = self.collectionView?.indexPathForItem(at: gr.location(in: self.collectionView))

                    }

            break;

        default:

            self.collectionView?.cancelInteractiveMovement();

            break;

        }

    }

相关文章

网友评论

      本文标题:UITapGestureRecognizer 手势

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