1 /**
2 UIKit中包含了UIGestureRecognizer类,用于检测发生在设备中手势。
3 UIGestureRecognizer是一个抽象类,定义了所有手势的基本行为,他有下面一些子类用于处理具体的手势:
4 1.拍击UITapGestureRecognizer(任意次数的拍击)
5 2.向里或向外捏 UIPinchGestureRecognizer(用于缩放)
6 3.摇动或者拖拽 UIPanGestureRecognizer
7 4.滑动 UISwipeGestureRecoginzer(以任意方向)
8 5.旋转 UIRotationGestureRecoginzer (手指朝相反方向移动)
9 6.长按 UILongPressGestureRecoginzer
10
11 对于不同类型的手势识别器,具有不同的配置属性。比如UITapGestureRecognizer,可以配置拍击次数。界面接收到手势之后,可以发送一 个消息,用于处理响应手势动作后的任务。当然,不同的手势识别器,发送的消息方法也会有所不同。下面列举几个具体示例代码:
12 */
13
14
15 #pragma mark 一个手指,拍击两次手势
16 -(void)test1{
17 UITapGestureRecognizer *oneFingerTwoTaps = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(oneFingerTwoTaps)];
18 // Set required taps and number of touches
19 //敲击次数 随意设,不过一般情况都是不多于2此
20 [oneFingerTwoTaps setNumberOfTapsRequired:2];
21 //敲击手指数 随意设,不过要考虑用户使用
22 [oneFingerTwoTaps setNumberOfTouchesRequired:1];
23
24 // Add the gesture to the view
25 //添加到View
26 [self.view addGestureRecognizer:oneFingerTwoTaps];
27 }
28 //消息方法
29 -(void)oneFingerTwoTaps
30 {
31 NSLog(@"敲击了。。。");
32 }
33
34 #pragma mark 一个手指滑动手势
35 -(void)test2
36 {
37 UISwipeGestureRecognizer *oneFingerSwipeUp = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(oneFingerSwipeUp:)];
38
39
40 //滑动方向<#(UISwipeGestureRecognizerDirection)#>枚举类型
41 /*
42 UISwipeGestureRecognizerDirectionRight = 1 << 0,
43 UISwipeGestureRecognizerDirectionLeft = 1 << 1,
44 UISwipeGestureRecognizerDirectionUp = 1 << 2,
45 UISwipeGestureRecognizerDirectionDown = 1 << 3
46 */
47 [oneFingerSwipeUp setDirection:UISwipeGestureRecognizerDirectionUp ];
48 [self.view addGestureRecognizer:oneFingerSwipeUp];
49 }
50 //消息方法
51 -(void)oneFingerSwipeUp:(UISwipeGestureRecognizer *)recognizer
52 {
53 CGPoint point = [recognizer locationInView:self.view];
54 NSLog(@"上滑 - start location: %f,%f", point.x, point.y);
55 }
56
57 #pragma mark 旋转手势
58 -(void)test3
59 {
60 UIRotationGestureRecognizer *twoFingersRoatate = [[UIRotationGestureRecognizer alloc]initWithTarget:self action:@selector(twoFingersRotate:)];
61 [self.view addGestureRecognizer:twoFingersRoatate];
62
63 }
64 -(void)twoFingersRotate:(UIRotationGestureRecognizer *)recognizer
65 {
66 NSLog(@"Rotation in degrees since last change: %f", [recognizer rotation] * (180 / M_PI));
67 }