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("长按结束") } } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。