您的位置:首页 > 产品设计 > UI/UE

UITapGestureRecognizer的用法

2013-08-19 10:11 323 查看
UIKit中包含了UIGestureRecognizer类,用于检测发生在设备中的手势。UIGestureRecognizer是一个抽象类,定义了所有手势的基本行为,它有下面一些子类用于处理具体的手势:

1、拍击UITapGestureRecognizer(任意次数的拍击)

2、向里或向外捏UIPinchGestureRecognizer(用于缩放)

3、摇动或者拖拽UIPanGestureRecognizer

4、擦碰UISwipeGestureRecognizer(以任意方向)

5、旋转UIRotationGestureRecognizer(手指朝相反方向移动)

6、长按UILongPressGestureRecognizer

对于不同类型的手势识别器,具有不同的配置属性。比如UITapGestureRecognizer,可以配置拍击次数。界面接收到手势之后,可以发送一个消息,用于处理响应手势动作后的任务。当然,不同的手势识别器,发送的消息方法也会有所不同。

1.[代码]一个手指,拍击两次手势

01
//
创建一个手势识别器
02
UITapGestureRecognizer
*oneFingerTwoTaps=
03
[[[UITapGestureRecognizer
alloc]initWithTarget:selfaction:@selector(oneFingerTwoTaps)]autorelease];
04
05
//
Setrequiredtapsandnumberoftouches
06
[oneFingerTwoTaps
setNumberOfTapsRequired:2];
07
[oneFingerTwoTaps
setNumberOfTouchesRequired:1];
08
09
//
Addthegesturetotheview
10
[[self
view]addGestureRecognizer:oneFingerTwoTaps];
11
12
消息方法oneFingerTwoTaps
13
-
(
void
)oneFingerTwoTaps
14
{
15
NSLog(@
"Action:
Onefinger,twotaps"
);
16
}

2.[代码]两个手指,拍击两次手势

01
UITapGestureRecognizer
*twoFingersTwoTaps=
02
[[[UITapGestureRecognizer
alloc]initWithTarget:selfaction:@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:
Twofingers,twotaps"
);
10
}

3.[代码]一个手指向上、向下擦碰手势

01
//
向上擦碰
02
UISwipeGestureRecognizer
*oneFingerSwipeUp=
03
[[[UISwipeGestureRecognizer
alloc]initWithTarget:selfaction:@selector(oneFingerSwipeUp:)]autorelease];
04
[oneFingerSwipeUp
setDirection:UISwipeGestureRecognizerDirectionUp];
05
[[self
view]addGestureRecognizer:oneFingerSwipeUp];
06
07
-
(
void
)oneFingerSwipeUp:(UISwipeGestureRecognizer
*)recognizer
08
{
09
CGPoint
point=[recognizerlocationInView:[selfview]];
10
NSLog(@
"Swipe
up-startlocation:%f,%f"
,
point.x,point.y);
11
}
12
13
//
向下擦碰
14
UISwipeGestureRecognizer
*oneFingerSwipeDown=
15
[[[UISwipeGestureRecognizer
alloc]initWithTarget:selfaction:@selector(oneFingerSwipeDown:)]autorelease];
16
[oneFingerSwipeDown
setDirection:UISwipeGestureRecognizerDirectionDown];
17
[[self
view]addGestureRecognizer:oneFingerSwipeDown];
18
19
-
(
void
)oneFingerSwipeDown:(UISwipeGestureRecognizer
*)recognizer
20
{
21
CGPoint
point=[recognizerlocationInView:[selfview]];
22
NSLog(@
"Swipe
down-startlocation:%f,%f"
,
point.x,point.y);
23
}

4.[代码]旋转手势

1
UIRotationGestureRecognizer
*twoFingersRotate=
2
[[[UIRotationGestureRecognizer
alloc]initWithTarget:selfaction:@selector(twoFingersRotate:)]autorelease];
3
[[self
view]addGestureRecognizer:twoFingersRotate];
4
5
-
(
void
)twoFingersRotate:(UIRotationGestureRecognizer
*)recognizer
6
{
7
//
Converttheradianvaluetoshowthedegreeofrotation
8
NSLog(@
"Rotation
indegreessincelastchange:%f"
,
[recognizerrotation]*(180/M_PI));
9
}

5.[代码]向里或向外捏的手势跳至[1][2][3][4][5][全屏预览]

view
source

print?

1
UIPinchGestureRecognizer
*twoFingerPinch=
2
[[[UIPinchGestureRecognizer
alloc]initWithTarget:selfaction:@selector(twoFingerPinch:)]autorelease];
3
[[self
view]addGestureRecognizer:twoFingerPinch];
4
5
-
(
void
)twoFingerPinch:(UIPinchGestureRecognizer
*)recognizer
6
{
7
NSLog(@
"Pinch
scale:%f"
,
recognizer.scale);
8
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: