import UIKit class ViewController: UIViewController{ override func viewDidLoad() { super.viewDidLoad() //SwipeGestureRecognizer:滑动手势 let swipe = UISwipeGestureRecognizer(target: self, action: #selector(swipeUp(_ :))) //设置监听滑动的方向为向上 swipe.direction = .up //添加到视图中 self.view.addGestureRecognizer(swipe) //ScreenEdgePanGestureRecognizer:边缘滑动(是UISwipeGestureRecognizer的子类) let edgeSwipe = UIScreenEdgePanGestureRecognizer(target: self, action:#selector(ViewController.edgeSwipe)) //设置监听滑动的方向 edgeSwipe.edges = .left//从左边缘往右滑 self.view.addGestureRecognizer(edgeSwipe) //UITapGestureRecognizer:轻击手势 //单击监听 let tapSingle=UITapGestureRecognizer(target:self,action:#selector(Tap(_:))) tapSingle.numberOfTapsRequired = 1//连续点击次数 tapSingle.numberOfTouchesRequired = 1//同时按下次数 //双击监听 let tapDouble=UITapGestureRecognizer(target:self,action:#selector(Tap(_:))) tapDouble.numberOfTapsRequired = 2 tapDouble.numberOfTouchesRequired = 1 //若是一个空间同时有单击,双击爽个事件要想点击双击不触发单击事件,使用如下方法 tapSingle.require(toFail: tapDouble) //开启用户交互(如VIew使用该手势须要更换画面,需开启交互) self.view.isUserInteractionEnabled = true self.view.addGestureRecognizer(tapSingle) self.view.addGestureRecognizer(tapDouble) //UIPinchGesturnRecognizer:捏合手势 let pinch = UIPinchGestureRecognizer(target: self, action: #selector(Pinch(_:))) self.view.addGestureRecognizer(pinch) //UIRotationGestrueRecognizer:旋转手势 let rotation = UIRotationGestureRecognizer(target: self, action: #selector(Rotation(_:))) self.view.addGestureRecognizer(rotation) //UIPanGestureRecognizer:拖动手势 let View = UIView(frame: CGRect(x: 0, y: 0, width: 50, height: 50)) View.backgroundColor = UIColor.black View.center = self.view.center View.tag = 1 self.view.addSubview(View) let pan = UIPanGestureRecognizer(target: self, action: #selector(Pan(_:))) View.addGestureRecognizer(pan) //UILongPressGestureRecognzier:长按 let longPress = UILongPressGestureRecognizer(target: self, action: #selector(LongPress(_:))) //设置长按手势按下多少时长才被监听 longPress.minimumPressDuration = 1.0 //取消长按手势 longPress.allowableMovement = 20.0//受灾在按下状态下距离超过20视为非长按手势。此属性默认值为10 self.view.addGestureRecognizer(longPress) } //响应监听事件 @objc func swipeUp(_ recognizer:UISwipeGestureRecognizer){ let point = recognizer.location(in: self.view) print(point.x) print(point.y) } @objc func edgeSwipe() { print("使用了边缘滑动手势") } @objc func Tap(_ cognizer:UITapGestureRecognizer) { let Tapnumber = cognizer.numberOfTapsRequired print("你点击了:\(Tapnumber)") } @objc func Pinch(_ recognizer:UIPinchGestureRecognizer){ print("捏合比例为:\(recognizer.scale)") } @objc func Rotation(_ recognizer:UIRotationGestureRecognizer){ print("旋转角度为:\(recognizer.rotation*(180/CGFloat.pi))") } @objc func Pan(_ recognizer:UIPanGestureRecognizer){ let point = recognizer.location(in: self.view) let View = self.view.viewWithTag(1) View?.center = point //也能够用recognizer.view获取View对象 recognizer.view?.center = point } @objc func LongPress(_ sender:UILongPressGestureRecognizer){ if sender.state == .began{ print("长按开始") }else{ print("长按结束") } } }