基本知识点 : 

 -> IOS 3.2之后 , 苹果推出了手势识别功能 ( Gesture Recognizer ) 在触摸事件处理方面 , 简化开发难度.

 -> UIGesture Recognizer基类是一个抽象类, 定义了所有手势的基本行为, 使用它的子类才能处理具体的手势

 

 ->每一个手势识别器用法都差不多

 1 - (void)viewDidLoad {
 2     [super viewDidLoad];
 3     
 4     //缩放
 5     [self testPinch];
 6     
 7     //旋转
 8     [self testRotation];
 9     
10     
11 }
12 
13 #pragma mark -- 测试缩放
14 - (void)testPinch
15 {
16     // 创建缩放手势识别器
17     UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinchView:)];
18     // 设置控制器为代理
19     pinch.delegate =self;
20     //添加手势识别器
21     [self.iconView addGestureRecognizer:pinch];
22 }
23 
24 // 这个方法调用频率非常高
25 - (void)pinchView:(UIPinchGestureRecognizer *)pinch
26 {
27    
28     // 在这个pinch.view.transform上 缩放X Y的比例
29     pinch.view.transform = CGAffineTransformScale(pinch.view.transform, pinch.scale, pinch.scale);
30     
31     //缩放一下,立刻初始化当前比例为1,保证当前比例一直为1
32     pinch.scale = 1;
33     
34     
35 }
36 
37 
38 #pragma mark -- 测试选装
39 
40 - (void)testRotation
41 {
42     // 创建旋转手势识别器
43     UIRotationGestureRecognizer *rotation = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(RotationView:)];
44     // 设置当前控制器为代理
45     rotation.delegate = self;
46     // 添加手势识别器
47     [self.iconView addGestureRecognizer:rotation];
48 }
49 
50 
51 // 这个方法调用频率非常高
52 - (void)RotationView:(UIRotationGestureRecognizer *)rotote
53 {
54     // 在self.rotationView.transform 角度基础上, 加上右边的角度
55     rotote.view.transform = CGAffineTransformRotate(rotote.view.transform, rotote.rotation);
56     //先清0,保证每旋转一下之后,当前角度都为0,
57     rotote.rotation = 0;
58 }
59 
60 
61 #pragma mark -- 代理啊方法
62 
63 /**
64  *  可判断 gestureRecognizer 和 otherGestureRecognizer 返回的手势识别器是否一样,
65  *  允许多个手势识别器同时有效
66  *
67  *  @param gestureRecognizer      传入的第0个手势识别器
68  *  @param otherGestureRecognizer 传入的第1个手势识别器
69  *
70  *  @return YES : 同时有效
71  */
72 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
73 {
74     return YES;
75 }

 

版权声明:本文为cwllong原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/cwllong/p/4887707.html