
import UIKitclass 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("长按结束") } }} 总结 以上是内存溢出为你收集整理的Swift - UIGestureRecognizer全部内容,希望文章能够帮你解决Swift - UIGestureRecognizer所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)