1、概述:
UISwipeGestuRecognizer: 滑动(快速滑动)
UITapGestureRecognizer: 点击(轻点)
UIPinchGestureRecognizer: 捏合
UIRotationGestureRecognizer: 旋转
UIPanGestureRecognizer: 拖动(移动速率较慢)
UILogPressGestureRecognizer: 长按
2、工具
Xcode:7.2,语言:Swift
3、滑动 (UISwipeGestureRecognizer)
let swipe = UISwipeGestureRecognizer(target: self, action: "Swipe"); /// 定义滑动方向 swipe.direction = UISwipeGestureRecognizerDirection.Down; self.view.addGestureRecognizer(swipe);这里的代码很简单。初始化时,设置了target 和 action。 同时, 调用View的addGestureRecognizer方法,表示添加一个手势检测。action的方法如下:
func Swipe() { print("swipe"); }4、 轻点、捏合、旋转
/* 轻点 */ let tapSingle = UITapGestureRecognizer(target: self, action: "tapSingle"); /// 设置触摸点数 tapSingle.numberOfTapsRequired = 1; /// 设置点击次数 tapSingle.numberOfTouchesRequired = 1; let tapDouble = UITapGestureRecognizer(target: self, action: "tapDouble"); tapDouble.numberOfTapsRequired = 2; tapDouble.numberOfTouchesRequired = 1; /// 双击事件不触发单击事件 tapSingle.requireGestureRecognizerToFail(tapDouble); /// 添加 view.addGestureRecognizer(tapDouble); view.addGestureRecognizer(tapSingle); /* 捏合 */ let pinch = UIPinchGestureRecognizer(target: self, action: "pinchTouch:"); view.addGestureRecognizer(pinch); /* 旋转手势 */ let retation = UIRotationGestureRecognizer(target: self, action: "retation:"); view.addGestureRecognizer(retation);
下面是action代码:
func retation(recognizer:UIRotationGestureRecognizer) { print(recognizer.rotation * (180 / CGFloat(M_PI))); } func pinchTouch(recognizer: UIPinchGestureRecognizer) { print(recognizer.scale); } func tapDouble() { print("Double"); } func tapSingle() { print("single"); }5、拖动
/* 拖动手势 */ rect = UIView(frame:CGRectMake(0, 0, 100, 100)); rect.center = view.center; rect.backgroundColor = UIColor.greenColor(); view.addSubview(rect); let pan = UIPanGestureRecognizer(target: self, action: "panDid:"); pan.maximumNumberOfTouches = 1; rect.addGestureRecognizer(pan);action代码:
func panDid(recognizer:UIPanGestureRecognizer) { let point = recognizer.locationInView(self.view); rect.center = point; }运行结果(可以拖动有色块移动) :