手势

作者: 纳兰沫 | 来源:发表于2019-11-18 15:47 被阅读0次

点击手势 捏合手势 旋转手势 轻扫手势 拖拽手势 边缘平移手势 长按手势

    //点击手势
    func handleTap(tap: UITapGestureRecognizer){
        if tap.state == .ended {
            
        }
    }

    //捏合手势
    func handlePinch(pinch: UIPinchGestureRecognizer) {
        //时刻改变
        if pinch.state == .began || pinch.state == .changed {
            view.transform = view.transform.scaledBy(x: pinch.scale, y: pinch.scale)
            pinch.scale = 1
//            pinch.velocity 缩放速度 放大为正 缩小为负 单位 缩放比/秒
        }
    }
    
    //旋转手势
    func handleRotation(rotation: UIRotationGestureRecognizer) {
        
        if rotation.state == .began || rotation.state == .changed {
            view.transform = view.transform.rotated(by: rotation.rotation)
            rotation.rotation = 0.0
//            rotation.velocity 旋转速度 顺时针为正 逆时针为负 单位是 弧度/秒
        }
    }

    //轻扫手势
    func handleSwipe(swipe: UISwipeGestureRecognizer) {
        if swipe.state == .ended {
            
            
        }
    }
    
    var startCenter = CGPoint.zero
    //拖拽手势
    func handlePan(pan: UIPanGestureRecognizer){
//        pan.setTranslation(<#T##translation: CGPoint##CGPoint#>, in: <#T##UIView?#>) 设置手指在某个view里面的偏移量
//        pan.velocity(in: <#T##UIView?#>) 平移速度 单位 point/秒
       let translation = pan.translation(in: view)
        if pan.state == .began {
            startCenter = view.center
        }
        //.began .changed .ended 状态时更新label的位置
        if pan.state != .cancelled {
            view.center = CGPoint(x: startCenter.x + translation.x, y: startCenter.y + translation.y)
        }else{
            //.cancelled 时恢复到原位置 被系统事件打断
            view.center = startCenter
        }
    }
    
    //边缘平移手势
    func handleScreenEdgePan(screenEdgePan: UIScreenEdgePanGestureRecognizer){
        
        let x = screenEdgePan.translation(in: view).x
        if screenEdgePan.state == .began || screenEdgePan.state == .changed {
            view.transform = view.transform.scaledBy(x: x, y: 0)
        }else{
            UIView.animate(withDuration: 0.3) {
                self.view.transform = .identity
            }
        }
    }
    
    //长按手势
    func handleLongPress(longPress: UILongPressGestureRecognizer){
        if longPress.state == .ended {
            view.backgroundColor = #colorLiteral(red: 0.521568656, green: 0.1098039225, blue: 0.05098039284, alpha: 1)
        }
    }

相关文章

  • 手势

    点击手势 捏合手势 旋转手势 轻扫手势 拖拽手势 边缘平移手势 长按手势

  • iOS-手势详细参数说明

    敲击手势 长按手势 滑动手势 拖动手势 旋转手势 捏合手势 两种手势作用在同一个视图

  • 【iOS学习】——手势识别

    iOS 手势 手势需要开启用户交互 点击手势 单击手势 双击手势 添加 numberOfTapsRequired...

  • Swift - UIGestureRecognizer 各种手势

    1、点击手势2、拖动手势3、长按手势4、滑动手势5、捏合手势6、旋转手势 完整代码

  • iOS七种手势详解

    1、轻拍手势 2、捏合手势 3、旋转手势 4、平移手势 5、边缘轻扫手势 6、长按手势 7、轻扫手势 给image...

  • iOS手势总结

    1.轻拍手势 2.长按手势 3.轻扫手势 4.平移手势 5.捏合手势 6.旋转手势 7.边缘手势

  • iOS 手势

    修改时间: 2016-12-19修改次数: 0 手势传递 点击手势 捏合手势 轻扫手势 拖动手势 长按手势

  • iOS手势操作

    iOS手势有六种 手势类型: 手势状态: 创建View添加手势 1.轻点手势( UITapGestureRecog...

  • Vue手势

    点击手势 滑动手势 手势的方法

  • UI梳理——手势

    手势分类: 手势的创建: 方法的实现: 轻扫手势:UISwipeGestureRecognizer 长按手势: 以...

网友评论

      本文标题:手势

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