老是忘记 mark以下
转自:http://www.oschina.net/code/snippet_54100_8106
UIKit中包含了UIGestureRecognizer类,用于检测发生在设备中的手势。UIGestureRecognizer是一个抽象类,定义了所有手势的基本行为,它有下面一些子类用于处理具体的手势:
1、拍击UITapGestureRecognizer (任意次数的拍击)
2、向里或向外捏UIPinchGestureRecognizer (用于缩放)
3、摇动或者拖拽UIPanGestureRecognizer
4、擦碰UISwipeGestureRecognizer (以任意方向)
5、旋转UIRotationGestureRecognizer (手指朝相反方向移动)
6、长按UILongPressGestureRecognizer
对于不同类型的手势识别器,具有不同的配置属性。比如UITapGestureRecognizer,可以配置拍击次数。界面接收到手势之后,可以发送一个消息,用于处理响应手势动作后的任务。当然,不同的手势识别器,发送的消息方法也会有所不同。下面列举几个具体示例代码:
http://www.ctolive.com/space-1023-do-blog-id-2107.html
1、拍击UITapGestureRecognizer (任意次数的拍击)
2、向里或向外捏UIPinchGestureRecognizer (用于缩放)
3、摇动或者拖拽UIPanGestureRecognizer
4、擦碰UISwipeGestureRecognizer (以任意方向)
5、旋转UIRotationGestureRecognizer (手指朝相反方向移动)
6、长按UILongPressGestureRecognizer
对于不同类型的手势识别器,具有不同的配置属性。比如UITapGestureRecognizer,可以配置拍击次数。界面接收到手势之后,可以发送一个消息,用于处理响应手势动作后的任务。当然,不同的手势识别器,发送的消息方法也会有所不同。下面列举几个具体示例代码:
http://www.ctolive.com/space-1023-do-blog-id-2107.html
标签:
Objective-C
iOS
代码片段(5)
[代码] 一个手指,拍击两次手势
01 | // 创建一个手势识别器 |
02 | UITapGestureRecognizer *oneFingerTwoTaps = |
03 | [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(oneFingerTwoTaps)] autorelease]; |
04 | |
05 | // Set required taps and number of touches |
06 | [oneFingerTwoTaps setNumberOfTapsRequired:2]; |
07 | [oneFingerTwoTaps setNumberOfTouchesRequired:1]; |
08 | |
09 | // Add the gesture to the view |
10 | [[self view] addGestureRecognizer:oneFingerTwoTaps]; |
11 |
12 | 消息方法oneFingerTwoTaps |
13 | - ( void )oneFingerTwoTaps |
14 | { |
15 | NSLog(@ "Action: One finger, two taps" ); |
16 | } |
[代码] 两个手指,拍击两次手势
01 | UITapGestureRecognizer *twoFingersTwoTaps = |
02 | [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(twoFingersTwoTaps)] autorelease]; |
03 | [twoFingersTwoTaps setNumberOfTapsRequired:2]; |
04 | [twoFingersTwoTaps setNumberOfTouchesRequired:2]; |
05 | [[self view] addGestureRecognizer:twoFingersTwoTaps]; |
06 |
07 | 消息方法twoFingersTwoTaps |
08 | - ( void )twoFingersTwoTaps { |
09 | NSLog(@ "Action: Two fingers, two taps" ); |
10 | } |
[代码] 一个手指向上、向下擦碰手势
01 | // 向上擦碰 |
02 | UISwipeGestureRecognizer *oneFingerSwipeUp = |
03 | [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(oneFingerSwipeUp:)] autorelease]; |
04 | [oneFingerSwipeUp setDirection:UISwipeGestureRecognizerDirectionUp]; |
05 | [[self view] addGestureRecognizer:oneFingerSwipeUp]; |
06 |
07 | - ( void )oneFingerSwipeUp:(UISwipeGestureRecognizer *)recognizer |
08 | { |
09 | CGPoint point = [recognizer locationInView:[self view]]; |
10 | NSLog(@ "Swipe up - start location: %f,%f" , point.x, point.y); |
11 | } |
12 |
13 | // 向下擦碰 |
14 | UISwipeGestureRecognizer *oneFingerSwipeDown = |
15 | [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(oneFingerSwipeDown:)] autorelease]; |
16 | [oneFingerSwipeDown setDirection:UISwipeGestureRecognizerDirectionDown]; |
17 | [[self view] addGestureRecognizer:oneFingerSwipeDown]; |
18 |
19 | - ( void )oneFingerSwipeDown:(UISwipeGestureRecognizer *)recognizer |
20 | { |
21 | CGPoint point = [recognizer locationInView:[self view]]; |
22 | NSLog(@ "Swipe down - start location: %f,%f" , point.x, point.y); |
23 | } |
[代码] 旋转手势
1 | UIRotationGestureRecognizer *twoFingersRotate = |
2 | [[[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(twoFingersRotate:)] autorelease]; |
3 | [[self view] addGestureRecognizer:twoFingersRotate]; |
4 |
5 | - ( void )twoFingersRotate:(UIRotationGestureRecognizer *)recognizer |
6 | { |
7 | // Convert the radian value to show the degree of rotation |
8 | NSLog(@ "Rotation in degrees since last change: %f" , [recognizer rotation] * (180 / M_PI)); |
9 | } |
[代码] 向里或向外捏的手势
1 | UIPinchGestureRecognizer *twoFingerPinch = |
2 | [[[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(twoFingerPinch:)] autorelease]; |
3 | [[self view] addGestureRecognizer:twoFingerPinch]; |
4 |
5 | - ( void )twoFingerPinch:(UIPinchGestureRecognizer *)recognizer |
6 | { |
7 | NSLog(@ "Pinch scale: %f" , recognizer.scale); |
8 | } |